基于资源的对话框
目的
能够显示一对话框。哪怕什么事情都不能做。
步骤
增加资源文件到工程中
通过VC2005的Project菜单,增加资源文件,VC2005将自动创建资源文件Helloworld.rc和对应的resource.h文件。
新增对话框
打开helloworld.rc,新建一个对话框,ID为IDD_DIALOG1
修改main.cpp,内容为:
#include
#include
#include "resource.h"
class CMyDialog : public winx::ModelDialog
{
};
int _tmain(int argc,TCHAR* argv[])
{
CMyDialog dlg;
dlg.DoModal();
return 0;
}
编译,运行,结果:
分析:
class CMyDialog : public winx::ModelDialog
Winx对于对话框程序的开发,基本上与SDK一样:基于对话框资源编辑器可视化的设计。这个MFC和Win32 SDK都一样。
可以猜测,winx的ModelDialog模态对话框基类,可能是对Win32 SDK的
INT_PTR DialogBox(
HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc );
封装。
通过对话框ID来标志一个对话框。
对话框资源ID以模板参数的形式传给winx对话框基类。
我们自己的对话框类,没有写任何代码。即可工作了。
使用对话框类比较简单:
CMyDialog dlg;
dlg.DoModal();
创建一个对象,极其类似MFC的写法。但是,其清爽成都,完全与MFC不可同日而语。
举一反三:
既然有ModelDialog,是否也有ModelessDialog?
答案,确实有ModelessDialog。该类无DoModal()函数。
推理:
入口函数为main,并没有使用两个参数。命令行参数如何处理?控制台程序,图标如何处理?存疑。
既然代码与参数毫无关系,所以可以改入口函数为WinMain了。