[英]How do I implement Windows style for a dialog box in C++?
我已经在Internet上搜索了答案,但是除了模态对话框和模态对话框之间的区别之外,我找不到任何对我的问题有用的东西。
如标题中所述,我的问题是-如何为对话框实现/使用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;
}
现在,当我编译此代码时,控制台和对话框出现在屏幕上,但是对话框控件(按钮)似乎以Windows 2000样式显示。 我正在使用Windows 10。
我有这种风格:
我想要这种风格:
您需要在清单中选择加入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中包含的可版本控制对象的列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.