durchsichtige toolbar
-
folgendes problem:
ich habe eine toolbar mit CreateToolbarEx erstellt und will dabei den style TBSTYLE_FLAT verwenden. Jetzt wird die toolbar aber durchsichtig dargestellt. wie kann ich das verhindern oder umgehen ?
hier mein code:
TBBUTTON buttons[]={ {0, 0,TBSTATE_ENABLED,TBSTYLE_SEP , 0, 0}, {1,TB_BUTTON1,TBSTATE_ENABLED,TBSTYLE_BUTTON , 0, 0}, {2,TB_BUTTON2,TBSTATE_ENABLED,TBSTYLE_BUTTON , 0, 0}, {3,TB_BUTTON3,TBSTATE_ENABLED,TBSTYLE_BUTTON , 0, 0}}; HBITMAP hBmp=(HBITMAP)LoadImage(0,"toolbar.bmp",IMAGE_BITMAP,0,0, LR_LOADFROMFILE|LR_DEFAULTSIZE| LR_CREATEDIBSECTION); hwndtb=CreateToolbarEx(hwnd, WS_CHILD| WS_VISIBLE| WS_CLIPSIBLINGS| CCS_TOP|TBSTYLE_FLAT, 0, 4, 0, (UINT)hBmp, buttons, 4, 15, 15, 15, 15, sizeof(TBBUTTON));
-
kommt schon, ich kriegs echt nicht auf die Reihe.
-
das druchsichte kannst du nicht unterbinden.
was du machen kannst, du erstellst für das toolbar einen eigene callbackfunk. und dort färbst du den hintergrund auf wünschfarbei ein.
aja, du mußt dann in der neuen callback den message WM_ERASEBKGND.hier mal ein kleines beispiel:
hToolbar = CreateToolbarEx( hWnd , WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | WS_CLIPSIBLINGS | TBSTYLE_TOOLTIPS , 787 , ANZAHL_BUTTONS , NULL , (UINT)LoadImage( g_hInst , "Grafiken//Toolbar//leiste.bmp" , IMAGE_BITMAP , 0 , 0 , LR_LOADFROMFILE ) , tbButtons , ANZAHL_BUTTONS + 2, 16 , 16, 16 , 16, sizeof( TBBUTTON ) ); proc = (WNDPROC)SetWindowLong( hToolbar , GWL_WNDPROC , (LONG)(WNDPROC)ToolProc ); .. . LRESULT CALLBACK ToolProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ) { static HBRUSH hBrush = NULL; static RECT rect; switch( nMsg ) { case WM_ERASEBKGND: hBrush = CreateSolidBrush( RGB(212 , 208 , 200 ) ); GetClientRect( hWnd, &rect ); FillRect( (HDC)wParam , &rect , hBrush ); return 1; case WM_CLOSE: DeleteObject( hBrush ); return 0; } return CallWindowProc( (WNDPROC)proc , hWnd , nMsg , wParam , lParam ); }
-
was ist proc für eine variable ?
-
ohh, das ist WNDPROC
-
danke dass du so schnell geantwortet hast. Jetzt habe ich ein anderes Prob zwischen meinem Menü und der Toolbar ist so ein häßlicher dunkelgrauer streifen. weiß du wie ich den wegbekomme ?