如何在C++中为对话框实现Windows样式?

1 c++ windows winapi dialog

我在互联网上搜索了一个答案,但除了模态和模态对话框之间的区别外,我找不到任何有用的问题.

正如标题中所写,我的问题是 - 如何在对话框中实现/使用特定于Windows版本的设计?IOW,在Windows 10系统上使用Windows 10按钮样式.

我正在使用Visual Studio,并且使用集成资源编辑器为我的对话框创建了一个简单的资源.

这是我的程序:

int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, NULL);
    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在,当我编译此代码时,控制台和对话框出现在屏幕上,但对话框控件(按钮)似乎以Windows 2000样式显示.我正在使用Windows 10.

我有这种风格:

目前的风格

我想要这种风格:

想要的风格

And*_*ers 5

您需要选择清单中的comctl32 v6:启用视觉样式.

若要使您的应用程序使用视觉样式,您必须使用ComCtl32.dll版本6或更高版本.由于版本6不可再发行,因此仅当您的应用程序在包含它的Windows版本上运行时才可用.Windows附带版本5和版本6.ComCtl32.dll版本6包含用户控件和公共控件.默认情况下,应用程序使用User32.dll中定义的用户控件和ComCtl32.dll版本5中定义的公共控件.有关DLL版本及其分发平台的列表,请参阅通用控件版本.

如果希望应用程序使用可视样式,则必须添加应用程序清单或编译器指令,指示如果可用,则应使用ComCtl32.dll版本6.

应用程序清单使应用程序能够指定所需的程序集版本.在Microsoft Win32中,程序集是一组DLL和这些DLL中包含的可版本化对象列表.