0

我尝试创建一个带有状态栏的窗口:


#include <commctrl.h>
InitCommonControls();
hStatus = CreateWindowEx(
  0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 
  0, 0, 0, 0, hWnd, (HMENU)IDC_MAIN_STATUS, GetModuleHandle(NULL), NULL);
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);

一切都很好,除了它是用经典风格绘制的,而不是用 XP 风格绘制的。

请问,如何让它以XP风格出现?我是否必须定义一些#define _WIN32_IE 0x0500(我已经有了)?

我使用 MinGW,如果这有什么影响...

4

2 回答 2

5

您需要添加一个应用程序清单来告诉它使用 V6 通用控件而不是 V5。

编辑:有一篇关于如何执行此操作的MSDN 文章,包括有关如何创建和使用清单的部分。实际上,还有很多关于它的 MSDN 文章,但我认为这篇文章充分涵盖了这个主题......

于 2009-10-15T21:13:37.990 回答
1

正如 Jerry 所提到的,您的应用程序需要一个清单文件。这里有两个链接解释了如何创建它们。

http://msdn.microsoft.com/en-us/library/ms649781%28VS.85%29.aspx

http://msdn.microsoft.com/en-us/library/ms997646.aspx

像往常一样 MSDN 是你的朋友

于 2009-10-15T21:21:54.100 回答