WEB开发网
开发学院软件开发VC MFC教程(12)-- 对话框和对话框类CDialog(1)... 阅读

MFC教程(12)-- 对话框和对话框类CDialog(1)

 2010-03-25 20:35:00 来源:WEB开发网   
核心提示:对话框的MFC实现在MFC中,对话框窗口的功能主要由CWnd和CDialog两个类实现,MFC教程(12)-- 对话框和对话框类CDialog(1)(2),CDialog的设计和实现MFC通过CDialog来封装对话框的功能,CDialog从CWnd继承了窗口类的功能(包括CWnd实现的有关功能),若空则设置父窗口为应

对话框的MFC实现

在MFC中,对话框窗口的功能主要由CWnd和CDialog两个类实现。

CDialog的设计和实现

MFC通过CDialog来封装对话框的功能。CDialog从CWnd继承了窗口类的功能(包括CWnd实现的有关功能),并添加了新的成员变量和函数来处理对话框。

CDialog的成员变量

CDialog的成员变量有:

protected:

UINT m_nIDHelp; // Help ID (0 for none, see HID_BASE_RESOURCE)

LPCTSTR m_lpszTemplateName; // name or MAKEINTRESOURCE

HGLOBAL m_hDialogTemplate; // indirect (m_lpDialogTemplate == NULL)

// indirect if (m_lpszTemplateName == NULL)

LPCDLGTEMPLATE m_lpDialogTemplate;

void* m_lpDialogInit; // DLGINIT resource data

CWnd* m_pParentWnd; // parent/owner window

HWND m_hWndTop; // top level parent window (may be disabled)

成员变量保存了创建对话框的模板资源、对话框父窗口对象、顶层窗口句柄等信息。三个关于模板资源的成员变量m_lpszTemplateName、m_hDialogTemplate、m_lpDialogTemplate对应了三种模板资源,但在创建对话框时,只要一个模板资源就可以了,可以使用其中的任意一类。

CDialog的成员函数:

构造函数:

CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );
CDialog( );

CDialog重载了三个构造函数。其中,第三个是缺省构造函数;第一个和第二个构造函数从指定的对话框模板资源创建,pParentWnd指定了父窗口或所属窗口,若空则设置父窗口为应用程序主窗口。---www.bianceng.cn

初始化函数

BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
BOOL CreateIndirect( LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL );
BOOL CreateIndirect( HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL );
BOOL InitModalIndirect( LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL );
BOOL InitModalIndirect( HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL );

Create用来根据模板创建无模式对话框;CreateInDirect用来根据内存中的模板创建无模式对话框;InitModalIndirect用来根据内存中的模板创建模式对话框。它们都提供了两个重载版本。

上一页  1 2 3 4 5 6 7  下一页

Tags:MFC 教程 对话框

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接