Winapi 具有XP样式的Win32状态栏

Winapi 具有XP样式的Win32状态栏,winapi,mingw,statusbar,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[]

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


#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);

#包括
InitCommonControls();
hStatus=CreateWindowEx(
0,STATUSCLASSNAME,NULL,WS|u CHILD | WS|u VISIBLE | SBARS|u SIZEGRIP,
0,0,0,0,hWnd,(HMENU)IDC\u主\u状态,GetModuleHandle(NULL),NULL);
int statwidths[]={100,-1};
发送消息(hStatus、SB_SETPARTS、sizeof(statwidths)/sizeof(int),(LPARAM)statwidths);
一切都很好,只是它是用经典风格绘制的,而不是XP风格

请问,如何使其以XP样式显示?我必须定义一些#define(WIN32)IE 0x0500吗(我已经有了)


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

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


编辑:有一个关于如何做到这一点的章节,包括一个关于如何创建和使用清单的章节。实际上,关于它的MSDN文章还有很多,但我认为这篇文章已经足够涵盖这个主题了。

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


编辑:有一个关于如何做到这一点的章节,包括一个关于如何创建和使用清单的章节。事实上,关于它的MSDN文章还有很多,但我认为这篇文章充分涵盖了这个主题…

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


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

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


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

需要更多关于什么是清单的解释,但无论如何+1。需要更多关于什么是清单的解释,但无论如何+1。