2009-10-15 2 views
0

Я пытаюсь создать окно со строкой состояния:Win32 Строка состояния в стиле XP


#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, если что-нибудь влияет ...

ответ

5

Вы должны добавить манифест приложения, чтобы сказать ему, чтобы использовать общие элементы управления V6 вместо V5.

Редактировать: Есть MSDN Article о том, как это сделать, в том числе раздел о том, как создавать и использовать манифест. На самом деле, на нем также есть еще несколько статей MSDN, но я думаю, что этот вопрос охватывает предмет достаточно ...

+0

Нужно больше объяснений о том, что проявляется, но в любом случае +1. –

+0

Как? Что такое манифест? – 2009-10-15 21:15:25