具有XP风格的Win32状态栏

时间:2009-10-15 21:03:19

标签: winapi mingw statusbar

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


#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,如果这会影响任何东西......

2 个答案:

答案 0 :(得分:5)

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

编辑:关于如何执行此操作有MSDN Article,包括有关如何创建和使用清单的部分。实际上,还有相当多的MSDN文章,但我认为这个文章已经足够了...

答案 1 :(得分:1)

正如Jerry所说,您需要一个适用于您的应用程序的清单文件。以下是两个解释如何创建它们的链接。

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

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

像往常一样,MSDN是你的朋友

相关问题