CMFCToolBar Button checken
-
Wenn das ein normaler Toolbar mit Command Handler ist, dann geht das ganu normal mit enem Handlerun der Funktion CCmdUI::SetCheck.
-
@ Probe-Nutzer:
Abfrage auf TBBS_CHECKED mit GetButtonStyle schlägt bei gecheckten Button fehl.
Auch SetButtonStyle(TBBS_CHECKED) geht nicht zum checken.
ButtonToIndex erwartet als Parameter einen Pointer auf den Button. Den bekomme ich ja auch nur über den Index. Der Punkt ist aber auch nicht so wichtig.@ Martin:
Also es ist eine "normale" CMFCToolBar, so wie sie auch vom Projekt-Wizard mit ertellt wird. Den Rest deiner Antwort habe ich irgendwie nicht verstanden.
-
ON_COMMAND Handler? Ein Basis Konstrukt in der MFC...
Lies ein Tutorial...
-
Natürlich gibts einen ON_COMMAND-Handler. Sonst wär der Button ja irgenwie sinnlos.
Vielleicht hast Du ja meine Frage nicht verstanden!?
Ich will wissen, wie ich (zB nach Programmstart) einen Button in der CMFCTollbar checken kann und wie ich abfragen kann, ob er gecheckt ist.
-
Deine Frage verstehe ich nicht, weil zu der ID in dem Toolbar ein ON_COMMAND Handler aufgerufen wird und in CCmdUI gibt es wie beiu alen anderen Buttons GetCheck/SetCheck!
-
Der Command-Handler wird doch erst aufgerufen, wenn ich den Button anklicke.
Ich will ihn aber checken, ohne ihn (mit der Maus) anzuklicken.Edit:
Und die Methode SetCheck() suche ich beim CMFCToolbarButton vergeblich.
-
Bitte beschäftige Dich mal mit der MFC!
1. Die entsprechenden ON_UPDATE_COMMAND Handler werden sofort aufgerufen!
2. Habe ich von CCmdUI::SetCheck gesprochen.
-
Ok, ich merke schon, dass es nicht so einfach geht, wie bei einer CToolbar. Da habe ich einfach folgendes gemacht:
m_wndToolBar.GetToolBarCtrl().CheckButton(ID_SELMODE,TRUE);
Werde mir das mit ON_UPDATE_COMMAND anschauen.
Die zweite wichtige Frage war ja, wie ich an beliebiger Stelle abfragen kann, ob der Button gecheckt ist. Aber das ist dann wohl auch nicht so einfach abzufragen, oder?
-
Es geht genauso einfach wie bei einem CToolBar!
Man verwendet wie immer ON_UPDATE_COMMAND Handler...Warum sollte man so etwas wie Du es hier schreibst machen, wenn es automatisch durch die Update Handler geht?
-
Ja, habs nun gecheckt
Danke für die Geduld.