如何使用资源文件(* .rc)设置基于对话框的应用程序的样式

时间:2011-06-21 02:30:21

标签: windows winapi rc createwindow

如何使用资源文件(* .rc)设置基于对话框的应用程序的样式?

我可以使用CreateWindowCreateWindowEx来创建应用程序的主窗口。 CreateWindowCreateWindowEx的一些参数定义了对话框的样式。但我想使用资源文件(* .rc)来设置它的样式,而不是通过函数的传递样式参数的方式。

有人可以给我一些片段吗?

有人说我可以调用DialogBox,并给第二个参数设置样式模板。这会在CreateWindow和* .rc文件之间产生混淆吗?或者我可以同时使用它们吗?

2 个答案:

答案 0 :(得分:2)

使用CreateDialog。它处理包装对CreateWindowEx的调用,以及在需要时发布WM_INITDLG和WM_SETFONT消息。从MSDN上的文档链接example

您可以在DialogEx的文档中获取有关资源文件内容的信息。

答案 1 :(得分:2)

启动一个新的Win32项目并让它自动生成代码。将WinMain函数更改为如下所示:

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{

    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    DialogBox(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), NULL, About);
    return 0;
}

您可能希望在WM_INITDIALOG消息处理程序中添加对MoveWindow()的调用,以将窗口移动到屏幕上的更好位置。