Matthes Geschrieben 5. Februar 2004 Geschrieben 5. Februar 2004 Hallo, ich versuche einer Toolbar zur Laufzeit einen neuen Button hinzuzufügen. Das Bild des Buttons soll aus einer Bitmapdatei aus den Resourcen ausgelesen werden. Das ganze habe ich wie folgt realisiert: CToolBar *_wndToolBar = &((CMainFrame*)GetParent())->m_wndToolBar; CToolBarCtrl *_ctrlToolBar = &_wndToolBar->GetToolBarCtrl(); int nButCount = _ctrlToolBar->GetButtonCount(); _ctrlToolBar->AddBitmap(1,IDB_BITMAP1); int nStringCount = _ctrlToolBar->AddStrings("Test"); int nImgCount = _ctrlToolBar->GetImageList()->GetImageCount(); TBBUTTON tb; tb.iBitmap = nImgCount-1; tb.idCommand = ID_TEST; tb.fsState = TBSTATE_ENABLED; tb.fsStyle = TBSTYLE_BUTTON; tb.dwData = 0; tb.iString = nStringCount; _ctrlToolBar->InsertButton(nButCount, &tb); [/PHP] Das ganze klappt aber leider nur so halb: Wenn die Methode durchlaufen wurde, sieht man erstmal gar keine Veränderung, klickt man aber auf die Toolbar, so wird der neue Button sichtbar. Gibt es irgendeine Methode mit der die Anzeige der Toolbar aktualisiert wird? Ich habe es schon mit _ctrlToolBar->RedrawWindow und mit _ctrlToolBar->AutoSize() versucht, leider ohne Erfolg. Achso, ich benutze Visual C++ 6. Schonmal besten Dank im Voraus Matthes Zitieren
Guybrush Threepwood Geschrieben 5. Februar 2004 Geschrieben 5. Februar 2004 UpdateWindow() sollte das Problem lösen. Zitieren
Matthes Geschrieben 5. Februar 2004 Autor Geschrieben 5. Februar 2004 leider klappt das auch nicht Zitieren
Goos Geschrieben 5. Februar 2004 Geschrieben 5. Februar 2004 Hast auch schon ein Invalidate probiert? Goos Zitieren
Matthes Geschrieben 5. Februar 2004 Autor Geschrieben 5. Februar 2004 Leider auch nicht. Ist der Teil in dem ich den Button hinzufüge denn OK? Vielleicht liegts ja auch daran :confused: Ich hab nämlich auch das komische Phänomen, dass die Buttons alle breiter werden, wenn ich einen zweiten Button neu einfüge. Zitieren
Matthes Geschrieben 6. Februar 2004 Autor Geschrieben 6. Februar 2004 Das aktualisieran der Anzeige habe ich jetzt mit GetParentFrame()->RecalcLayout(); hinbekommen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.