Witam.
Mam spory problem dotyczący Code::Block (+ MinGW). Mam taki fragment kodu:
HWND g_hRebar;
[...]
INITCOMMONCONTROLSEX iccx;
iccx.dwSize = sizeof (INITCOMMONCONTROLSEX);
iccx.dwICC = ICC_COOL_CLASSES;
InitCommonControlsEx(&iccx);
g_hRebar = CreateWindowEx(NULL , REBARCLASSNAMEW , L"" , WS_CHILD | WS_VISIBLE |
RBS_AUTOSIZE | RBS_BANDBORDERS | RBS_TOOLTIPS , 0 , 0 , 0 , 0 ,
g_hWnd , NULL , hInstance , NULL);
Kompilator wysypuje błędy typu:
error: 'RBS_AUTOSIZE' was not declared in this scope
error: 'INITCOMMONCONTROLSEX' was not declared in this scope
a przecież w pliku commctrl.h który jest dołączony do projektu (i biblioteka libcomctrl32.a oczywiście dodana do do projektu)jest "czarne na białym":
#define RBS_AUTOSIZE 8192
[...]
#if (_WIN32_IE >= 0x0300)
typedef struct tagINITCOMMONCONTROLSEX {
DWORD dwSize;
DWORD dwICC;
} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;
#endif
z pierwszym błędem mogę sobie łatwo poradzić wstawiając np. w pliku z kodem #define ale z drugim błędem już nie jest tak łatwo. Nie chcę wiele z tym kombinować bo chciałbym żeby wszystko działało tak jak powinno tylko nie bardzo wiem co zrobić. Żeby było dziwniej to gdy wezmę w edytorze PPM na RBS_AUTOSIZE albo INITCOMMONCONTROLSEX i wybiorę z menu Find declaration of 'XXX' to otwiera się nowy plik commctrl.h i to co szukam jest zaznaczone. Podobny problem miałem też ze stylami z pliku winuser.h (style okna i innych kontrolek). Ten błąd pokazuje się tylko przy niektórych stylach itp.
Używam wersję 10.05 ale na poprzedniej wersji był oto samo.
Dodam jeszcze że rozwiązanie problemu jest dla mnie bardzo ważne bo bez tego nie mogę dalej ruszyć z nauką WinAPI
Czy ktoś z Was wie co jest nie tak ?