具有XP风格的Win32状态栏

0 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);
Run Code Online (Sandbox Code Playgroud)

一切都没问题,除了它是用经典风格绘制的,而不是用XP风格绘制的.

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

我使用MinGW,如果这会影响任何东西......

Jer*_*fin 5

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

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