2010-10-31 30 views
2

我希望我的对话框(资源)在Win32/C应用中具有“现代”外观/样式,特别是其组合框。对于“现代”,我的意思是“下拉列表”类型的组合框看起来像一个坚实的按钮,只有一个小的“箭头”图标在侧面,而不是“旧”的外观:平面编辑框与单独箭头按钮。在VS对话框编辑器中,组合框看起来很“现代”。当我运行应用程序时,他们看起来“老”。我如何在对话框上强制使用“现代”风格?这是我试过了,白白:win32/C对话框:组合框的“现代”外观/样式

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

我写了几个的Win32/C++应用程序及其对话框(也是一种资源)得到了“现代”看开箱即用,不用我做任何事情。 C和C++有什么不同吗?

回答

3

您很可能必须通过清单指定comctl32.dll的正确版本,尤其是选择版本6(例如6.0.2900.5512)。有关详细信息,请参阅以下MSDN文章: Enabling Visual Styles

+0

很酷,谢谢。看起来我甚至不需要清单:从该MSDN文章添加单个“#pragma comment”行来修复该问题。 – MrSparkly 2010-10-31 01:44:05