vc中如果创建窗口时设置的基类是CRecordSet,如何调用函数去显示这个窗口?
因为CRecordSet类是CWnd的派生类所以我想调用createwindow函数,但是如何传参数不会,请高手指导。
追问:我写错了,应该是CRecordView汗。。。。。。。我要引用数据库,所以基类得是CRecordView。
因为CRecordSet类是CWnd的派生类所以我想调用createwindow函数,但是如何传参数不会,请高手指导。
追问:我写错了,应该是CRecordView汗。。。。。。。我要引用数据库,所以基类得是CRecordView。
答案:class CRecordset : public CObject
{
DECLARE_DYNAMIC(CRecordset)
// Constructor
public:
CRecordset(CDatabase* pDatabase = NULL);
public:
virtual ~CRecordset();
enum OpenType
{
dynaset, // uses SQLExtendedFetch, keyset driven cursor
snapshot, // uses SQLExtendedFetch, static cursor
forwardOnly, // uses SQLFetch
dynamic // uses SQLExtendedFetch, dynamic cursor
};
enum OpenOptions
{
none = 0x0,
readOnly = 0x0004,
appendOnly = 0x0008,
skipDeletedRecords = 0x0010, // turn on skipping of deleted records, Will slow Move(n).
noDirtyFieldCheck = 0x0020, // disable automatic dirty field checking
useBookmarks = 0x0100, // turn on bookmark support
useMultiRowFetch = 0x0200, // turn on multi-row fetch model
userAllocMultiRowBuffers = 0x0400, // if multi-row fetch on, user will alloc memory for buffers
useExtendedFetch = 0x0800, // use SQLExtendedFetch with forwardOnly type recordsets
executeDirect = 0x2000, // Directly execute SQL rather than prepared execute
optimizeBulkAdd = 0x4000, // Use prepared HSTMT for multiple AddNews, dirty fields must not change.
firstBulkAdd = 0x8000, // INTERNAL to MFC, don't specify on Open.
};
virtual BOOL Open(UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE,
LPCTSTR lpszSQL = NULL, DWORD dwOptions = none);
virtual void Close();
// Attributes
public:
HSTMT m_hstmt; // Source statement for this resultset
CDatabase* m_pDatabase; // Source database for this resultset
CString m_strFilter; // Where clause
CString m_strSort; // Order By Clause
BOOL CanAppend() const; // Can AddNew be called?
BOOL CanRestart() const; // Can Requery be called to restart a query?
BOOL CanScroll() const; // Can MovePrev and MoveFirst be called?
BOOL CanTransact() const; // Are Transactions supported?
BOOL CanUpdate() const; // Can Edit/AddNew/Delete be called?
BOOL CanBookmark() const; // Can Get/SetBookmark be called?
const CString& GetSQL() const; // SQL executed for this recordset
const CString& GetTableName() const; // Table name
BOOL IsOpen() const; // Recordset successfully opened?
BOOL IsBOF() const; // Beginning Of File
BOOL IsEOF() const; // End Of File
BOOL IsDeleted() const; // On a deleted record
....
};
我不知道你是从哪里看到它是CWnd的派生类的。。。。
你看下它有没有createwindow这样的成员?
其他:好专业 好难
按Ctrl+w
出现引导对话框,
右边创建新类
在第一行的editor里填写新的类的名称
在第3行的combobox里选择CDialog
确定,ok
另:
要在Mainfrm.cpp的前头加上你声明CInputDlg这个类的头文件.
举例:#include "InputDlg.h"
要编程学会看英文,undeclared identifier 就是不明确的声明.
上一个:用VC++6.0编写dll文件 加载exe测试 系统提示:dll文件丢失
下一个:我用vc6.0生成MFC的.EXE文件怎样在没vc的环境运行