MFC 应用程序代码分析: CGetInfoApp 类
这段代码是一个 MFC 应用程序的主体代码,它定义了应用程序类 'CGetInfoApp' 的成员函数和全局对象 'theApp',以及应用程序的初始化和消息循环处理。这个应用程序是一个窗口界面程序,它创建了一个对话框类 'CGetInfoDlg' 的对象 'dlg',将其作为主窗口并显示出来。
在 'InitInstance' 函数中,先调用 'AfxSocketInit' 函数初始化 Socket 库,然后调用 'AfxEnableControlContainer' 函数启用 ActiveX 控件容器,再调用 'Enable3dControls' 或 'Enable3dControlsStatic' 函数启用 3D 控件。最后创建 'CGetInfoDlg' 对象 'dlg' 并显示出来,等待用户的操作,直到对话框被关闭,返回 FALSE 退出应用程序。
接下来可以根据需要在 'CGetInfoApp' 类中添加成员函数或变量,或者在 'CGetInfoDlg' 类中添加响应函数来实现具体功能。
代码示例:
// CGetInfoApp
BEGIN_MESSAGE_MAP(CGetInfoApp, CWinApp)
//{{AFX_MSG_MAP(CGetInfoApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGetInfoApp construction
CGetInfoApp::CGetInfoApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CGetInfoApp object
CGetInfoApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CGetInfoApp initialization
BOOL CGetInfoApp::InitInstance()
{
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
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
CGetInfoDlg 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;
}
更多信息:
- MFC 应用程序框架:https://docs.microsoft.com/en-us/cpp/mfc/visual-c-mfc-fundamentals?view=msvc-170
- 对话框类:https://docs.microsoft.com/en-us/cpp/mfc/dialog-boxes?view=msvc-170
- Socket 编程:https://docs.microsoft.com/en-us/cpp/windows/winsock-programming?view=msvc-170
原文地址: https://www.cveoy.top/t/topic/obD5 著作权归作者所有。请勿转载和采集!