现在的位置: 首页 > 综合 > 正文

MFC 对话框应用程序结构

2013年10月14日 ⁄ 综合 ⁄ 共 1514字 ⁄ 字号 评论关闭

对话框应用程序结构
15:42 2012-10-26
CWinApp

class CWinApp : public CWinThread
===========================================================================================
BOOL CDlg102601App::InitInstance()
{
 AfxEnableControlContainer();

 // Standard initialization
 // If you are not using these features and wish to reduce the size
 //  of your final executable, you should remove from the following
 //  the specific initialization routines you do not need.

#ifdef _AFXDLL
 Enable3dControls();   // Call this when using MFC in a shared DLL
#else
 Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

 CDlg102601Dlg dlg;
 m_pMainWnd = &dlg;
 int nResponse = dlg.DoModal();
 if (nResponse == IDOK)
 {
  // TODO: Place code here to handle when the dialog is
  //  dismissed with OK
 }
 else if (nResponse == IDCANCEL)
 {
  // TODO: Place code here to handle when the dialog is
  //  dismissed with Cancel
 }

 // Since the dialog has been closed, return FALSE so that we exit the
 //  application, rather than start the application's message pump.
 return FALSE;
}
解析:
1、AfxEnableControlContainer();
该函数为应用程序提供了对 ActiveX控件的支持

#ifdef _AFXDLL
 Enable3dControls();   
#else
 Enable3dControlsStatic(); 
#endif
InitInstance成员函数调用类 CWinApp的成员函数 Enable3dControls或者Enable3dControlsStatic
以允许对话框和窗口可以使用具有三维外观的控件。
3、CDlg102601Dlg dlg;
定义对象 dlg;
4、m_pMainWnd = &dlg;
将其指针赋值给 CWnd类的成员变量m_pMainWnd
成员变量m_pMainWnd用于保存指向线程主窗口对象的指针,当由m_pMainWnd 引用的窗口被关闭时,该线程
由MFC自动终止.当应用程序的主线程被终止,该应用程序相应的也被终止。
5、 int nResponse = dlg.DoModal();
调用 DoModal()函数 创建显示对话框

OK 、CANCEL 可以设置退出对话框的后续操作,也可以重载OnOk() OnCancel()函数实现同样的功能。
===========================================================================================

 

抱歉!评论已关闭.