Win32/C对话框:一个组合框的“现代”外观/样式。

3

我希望我的Win32/C应用程序中的对话框(资源)有一个“现代”风格,特别是它的下拉列表框。所谓“现代”,就是指“下拉列表”类型的下拉列表框看起来像是一个实心按钮,只有一小个“箭头”图标在侧面,而不是“旧”的外观:扁平编辑框与单独的箭头按钮。在VS对话框编辑器中,组合框看起来是“现代”的。但是当我运行应用程序时,它们却显得“老旧”。我该如何强制对话框使用“现代”样式?以下是我尝试过但无果的方法:

#include "commctrl.h"  
#include "Uxtheme.h"  
setDia = CreateDialog(NULL, MAKEINTRESOURCE(IDD_DIA_SET), win, DialogProc);  
SetWindowTheme(setDia, L"Explorer", NULL);

我写了几个Win32/C++应用程序,它们的对话框(以及资源)默认具有“现代”外观,而我没有做任何事情。是C与C++之间的区别造成的吗?

1个回答

4

您可能需要通过一个manifest文件来指定正确版本的comctl32.dll,特别是选择v. 6(例如6.0.2900.5512)。有关更多信息,请参见下面的MSDN文章: 启用视觉样式


太棒了,谢谢。看来我甚至不需要清单:从那篇MSDN文章中添加单个“#pragma comment”行就解决了这个问题。 - MrSparkly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接