Image wechseln auf einzelnen Toolbar-Buttons
-
Guten Morgen,
wie schon im Titel bescrieben, möchte ich zu Laufzeit das Image eines
Tollbar-Buttons ändern. Es soll einfach nachdem der user auf ein Button geklickt hat dort ein anderes image erscheinen:
Hab mir dafür folgendes überlegt:void CMainFrame::SetFirstState()
{
CToolBarCtrl& bar = m_wndToolBarNormal.GetToolBarCtrl();
TBBUTTONINFO tbi;
memset(&tbi, 0, sizeof(TBBUTTONINFO));
int iIndx = bar.AddBitmap(1, IDB_BITMAP5);tbi.dwMask = TBIF_IMAGE;
tbi.cbSize = sizeof(TBBUTTONINFO);bar.GetButtonInfo(ID_BUTTON32921, &tbi);
tbi.iImage = iIndx;
BOOL bRes = bar.SetButtonInfo(ID_BUTTON32921, &tbi);
m_wndToolBarNormal.Invalidate();}
void CMainFrame::SetNextState()
{
CToolBarCtrl& bar = m_wndToolBarNormal.GetToolBarCtrl();
TBBUTTONINFO tbi;
memset(&tbi, 0, sizeof(TBBUTTONINFO));
int iIndx = bar.AddBitmap(1, IDB_BITMAP4);tbi.dwMask = TBIF_IMAGE;
tbi.cbSize = sizeof(TBBUTTONINFO);bar.GetButtonInfo(ID_BUTTON32921, &tbi);
tbi.iImage = iIndx;
BOOL bRes = bar.SetButtonInfo(ID_BUTTON32921, &tbi);
m_wndToolBarNormal.Invalidate();}
Allerdings übermalen sich die images nur gegenseitig. Hab schon Set(Disable)ImageList und SetBitmap pobiert. Aber nix da. SetBitmap mal alle buttons aus, SetImageList macht auch nicht, was ich will.
Bitte einen Tipp. Häng hier schon Stunden damit rum.
Kann mir nicht vorstellen, dass das nicht gehen soll.Gruss
-
::SendMessage(m_wndToolBar, TB_CHANGEBITMAP, (WPARAM) (int)ID_BUTTON32919, (LPARAM) (UINT)2 );