Rebar Control wird nicht angezeigt
-
Hallo,
ich benutze Visual C++ express 2008.
Nun versuche ich seit vielen Stunden ein Rebar Control in mein Fenster zu bekommen, das eine Toolbar beinhaltet. Nach vielem googlen habe ich dann was zu Dev C++ gefunden: Einfügen von "#define _WIN32_IE 0x0400". Also habe ich's mal mit dem Dev C++ probiert - es funktioniert, Rebar und Toolbar lassen sich korrekt darstellen. Mit Visual C++ bringt es aber nichts.(in der WndProc) if (wMsg == WM_CREATE) { InitCommonControls(); INITCOMMONCONTROLSEX icex; icex.dwSize = sizeof (INITCOMMONCONTROLSEX); icex.dwICC = ICC_COOL_CLASSES|ICC_BAR_CLASSES; InitCommonControlsEx(&icex); REBARINFO rbi; REBARBANDINFO rbBand; RtlZeroMemory(&rbi, sizeof (rbi)); RtlZeroMemory(&rbBand, sizeof (rbBand)); hRebar = CreateWindowEx(WS_EX_TOOLWINDOW, REBARCLASSNAME, NULL, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN |RBS_VARHEIGHT|CCS_NODIVIDER, 0,0,0,0,hWnd,(HMENU) 502,hInstance,NULL); if (!hRebar) {Beep(500, 12);} // Initialize and send the REBARINFO structure. rbi.cbSize = sizeof(REBARINFO); // Required when using this struct. rbi.fMask = 0; rbi.himl = (HIMAGELIST)NULL; if (!SendMessage(hRebar, RB_SETBARINFO, 0, (LPARAM)&rbi)){Beep (500, 12);} // Initialize structure members ... rbBand.cbSize = sizeof(REBARBANDINFO); rbBand.fMask = RBBIM_COLORS|RBBIM_BACKGROUND|RBBIM_STYLE|RBBIM_CHILD| RBBIM_CHILDSIZE|RBBIM_SIZE|RBBIM_IDEALSIZE|RBBIM_HEADERSIZE; rbBand.fStyle = RBBS_VARIABLEHEIGHT ; rbBand.hbmBack = LoadBitmap(hInstance, "#2"); if (!rbBand.hbmBack) {Beep (900, 12);} // Create the toolbar control to be added. hToolbar = CreateToolbar(hWndParent, ....); funktioniert, die Toolbar wird angezeigt int dwBtnSize = SendMessage(hToolbar, TB_GETBUTTONSIZE, 0,0); GetWindowRect (hToolbar, &rc); rbBand.hwndChild = hToolbar; rbBand.cxMinChild = 0; rbBand.cyMinChild = 30; //HIWORD(dwBtnSize); rbBand.cx = 250; rbBand.cxIdeal = 250; rbBand.cxHeader = 4; if (!SendMessage(hRebar, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand)) {Beep (900, 12);} ////////////////////////////////////////////////////////////////////// // Hier passiert's, die Message ist nicht erfolgreich - aber warum? // ////////////////////////////////////////////////////////////////////// else if (wMsg == WM_SIZE) { if (!IsWindow(hRebar)) {Beep( 500, 12);} MoveWindow (hRebar, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); }Hat jeman eine Vorstellung, was eventuell in Visual C++ eingestellt oder eingefügt werden muß, um das hinzukriegen? Mit Dev C++ funktioniert dieser Code.
Danke schon mal im Voraus.
Gruß Rainer
-
Hallo, hab den Fehler gefunden. Die voreingestellte Plattform hat nicht gestimmt.
Gruß Rainer