繁体   English   中英

如何在C ++中为对话框实现Windows风格?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM