Toolbar Buttons, Problem mit Ein / Ausschalten.
-
Hallo Martin,
danke für Deine schnelle Antwort.
Geht es Dir darum?
ja genau darum gehr's mir.
Ich hab es mit SetCheck verucht, nun ist der Button beim Start deaktiviert aber auch sonderbar grau schraffiert hinterlegt, also nicht auf die Art und Weise deaktiviert wie man das sonst von Windows kennt
.
Außerdem ist der Butten obwohl grau (also deaktiviert) benutzbar ???
Ich mach immer noch was falsch, leider

void CTereader0004View::OnUpdateButtonNext(CCmdUI* pCmdUI) { CTereader0004Doc *pDoc = GetDocument (); // pCmdUI->Enable (!m_bButtonNext); pCmdUI->SetCheck (2); if (pDoc->iTest == 1) { // pCmdUI->Enable (m_bButtonNext); pCmdUI->SetCheck (0); } }Danke für Deine Mühe
ShadowEater
-
P.S.: OnUpdateButton ist doch auch die richtige Funktion oder ?
Danke nochmal
ShadowEater
-
Warum arbeitest Du mit SetCheck(2). Das bedeutet unbestimmt.
SetCheck(1) bedeutet gedrückt.
-
Hmmm, ja stimmt.
Aber es klappt trotzdem nicht.
Ich glaub ich hab mich nicht richtig ausgedrückt.
Was ich möchte ist dass die beiden button beim start deaktiviert sind, wenn eine Dateigeladen wird sollen sie aktiviert werden. Das funktioniert soweit auch mit Enable(). drücke ich aber dann einen der Button wird er nicht als gedrückt dargestellt. Ich möchte das normale Verhalten erreichen also bei gedrücktem Button soll dieser vertieft dargestellt werden wenn die Maustaste losgelassen wird soll er wieder normal (nicht vertieft) dargestellt werden !Aber so klappts leider auch nicht !
void CTereader0004View::OnUpdateButtonNext(CCmdUI* pCmdUI) { CTereader0004Doc *pDoc = GetDocument (); // pCmdUI->Enable (!m_bButtonNext); pCmdUI->SetCheck (0); if (pDoc->iTest == 1) { // pCmdUI->Enable (m_bButtonNext); pCmdUI->SetCheck (1); } }Grus
ShadowEater
-
Raff ich nicht. Dieses Verhlaten ist doch das normale. SetCheck wir dnur benötigt um bleibend einen Button gedrückt erscheinen zu lassen....
Also musst Du doch nur Enable mit TRUE und FALSE aufrufen wann es Dir passt.
void CTereader0004View::OnUpdateButtonNext(CCmdUI* pCmdUI) { CTereader0004Doc *pDoc = GetDocument (); pCmdUI->Enable(pDoc->DasDokumentIstGeladen()); }
-
Hi ;),
...bleibend einen Button gedrückt erscheinen zu lassen....
Genau, dafür benötige ich SetCheck(). Aber der Button soll nicht permanent gedrückt erscheinen sondern nur wenn er gedrückt wird. Wird die Maustaste losgelassen soll er nach oben "springen" darüm benötige ich wie Du schon gesagt hast nur Enable() True / False zum ein und ausschalten !
invoid CTereader0004View::OnUpdateButtonNext(CCmdUI* pCmdUI) { CTereader0004Doc *pDoc = GetDocument (); pCmdUI->Enable (m_bButtonNext); }schlte ich den / die Buttons ein. m_bButtonNext ist eine Membervariable von View.
Die Datei wird im Dok geladen und der Indikator dafür im Dock auch auf 1 gesetzt. Aber wo muss / kann ich denn den bzw. die Buttons deaktivieren damit zu Beginn niemand drauf rdrücken kann ?

Danke für Deine Mühe
ShadowEater
-
Genau, dafür benötige ich SetCheck(). Aber der Button soll nicht permanent gedrückt erscheinen sondern nur wenn er gedrückt wird. Wird die Maustaste losgelassen soll er nach oben "springen" darüm benötige ich wie Du schon gesagt hast nur Enable() True / False zum ein und ausschalten !
Nein! Denn das ist das normale Verhalten eines Buttons. Dazu musst Du nichts tun.
Die WM_COMMAND Nachricht wird bei einem Button sowieso erst gesendet, wenn der Button los gelassen wird.
-
AAAAAAHHHHHHHHHHRRRRGGGGGGHHHHHHHH !!!!!!

...wird bei einem Button sowieso erst gesendet, wenn der Button los gelassen wird.
Danke jetzt geht's
Oh Mann, Danke

-
ShadowEater schrieb:
Die Datei wird im Dok geladen und der Indikator dafür im Dock auch auf 1 gesetzt. Aber wo muss / kann ich denn den bzw. die Buttons deaktivieren damit zu Beginn niemand drauf rdrücken kann ?

Frag doch einfach nach, ob das Dokument existiert - GetDocument() liefert NULL zurück, wenn du kein Dokument hast (zumindest in MDI-Anwendungen - SDI haben immer ein (notfalls leeres) Dokument).
-
Wenn er den Handler im View hat, dann liefert GetDocument() immer einen Wert!
Es gibt keinen Konstellation bei dem GetDocument() in einem CView NULL liefern würde!
-
Dnke nochmal

Es funktioniert jetzt bestens !Gruß;)
ShadowEater