3

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

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

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

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

4

2 回答 2

2

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

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

于 2011-06-21T02:50:45.407 回答
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() 的调用,以将窗口移动到屏幕上更好的位置。

于 2011-06-21T03:15:55.353 回答