Änderen der Bitmap eines Toolbar Buttons ?
-
Hallo zusammen,
ich bin fast am verzweifeln. Ich versuche krampfhaft einen von mir erstellten Button auf dem eine Bitmap liegt zu änderen so das er nach dem Klick eine anderes Bild anzeigt. Leider will mir dies absolut nicht gelingen. Kann mir vielleicht jemand ein bisschen dabei helfen.
Hier mal der Code der den Button erstellt:
h_bitmap = (HBITMAP)LoadImage( NULL, "Bitmaps/toolbar-play.bmp", // name or identifier of image IMAGE_BITMAP, // type of image 80, // desired width 80, // desired height LR_LOADFROMFILE // load flags ); //fill ADDBITMAP-Structur and overgive Bitmap-Handle TBADDBITMAP bitid; bitid.hInst = NULL; bitid.nID = (UINT)h_bitmap; TBBUTTON tbbutton; //Create TBBUTTON-Structur for saving infos about button which is to add pFrame->m_wndRecordBar.SendMessage(TB_ADDBITMAP, 1, (long)&bitid); tbbutton.iBitmap = 0; tbbutton.idCommand = IDC_PLAY_TOOLBAR; //Command-Parameter to Command-Message to recognize clicks on Toolbar-Button tbbutton.fsState = TBSTATE_ENABLED; tbbutton.fsStyle = TBSTYLE_FLAT; tbbutton.dwData = 0; tbbutton.iString = NULL; //At last, add the button to the Toolbar idx = pFrame->m_wndRecordBar.SendMessage(TB_ADDBUTTONS, (WPARAM) 1, (LPARAM) (LPTBBUTTON) &tbbutton);Nun habe ich bei MSDN folgenden kleinen Code ausschnitt gefunden der wie ich meine das Image änderen kann.
// Replace one toolbar bitmap with another. TBREPLACEBITMAP tbrb; tbrb.hInstOld = ::AfxGetInstanceHandle(); tbrb.nIDOld = IDB_TOOLBAR_PLAY; tbrb.hInstNew = ::AfxGetInstanceHandle(); tbrb.nIDNew = IDB_TOOLBAR_PAUSE; tbrb.nButtons = 1; CToolBarCtrl& m_toolBarCtrl = pFrame->m_wndRecordBar.GetToolBarCtrl(); BOOL bRet = m_toolBarCtrl.ReplaceBitmap( &tbrb );Leider funktoniert dies absolut nicht. Kann mir vielleicht jemand sagen woran das liegt könnte oder wie man sowas macht?? Es kann doch nicht so schwer sein einfach nur so ein kleines Bild zu wechseln oder ?!

Gruß
Wild
-
Schon wieder dieser Unsinn mit MFC und SendMessage Mischmasch.
Warum platzierst DU nicht alle Deine Icons in einer Bitmap und sagts dem Button nur noch welche er anzeigen Soll. (CToolBar::SetButtonInfo Index)