Benutzer mit den meisten Antworten
CMFCRibbonStatusBar und WM_SETMESSAGESTRING

Frage
-
Hallo NG,
wir haben in unseren MFC Apps die Statusbar auf CMFCRibbonStatusBar umgestellt.
Wir gerne weiterhin den "ungenutzen" Bereich der Statusbar für Texte wir AFX_IDS_IDLEMESSAGE ("Bereit") oder ähnliches nutzen.
Jetzt habe ich mir mal die Funktionen CFrameWnd::SetMessageText angesehen. Über einen Messagehandler landen wir in CFrameWnd::OnSetMessageString.Hier wird über CFrameWnd::GetMessageBar() die StatusBar geholt, welche auch unsere CMFCRibbonStatusBar ist.
Durch pMessageBar->SetWindowText() wird nun der Text zu gewiesen.Da weder SetMessageText noch SetWindowText() virtuell sind, weiss ich nicht, wie ich gegenwärtig über Standardmechanismen
den Text eines Label innerhalb meiner CMFCRibbonStatusBar setzen kann.Ich habe auch schon einen MessageHandler für WM_SETMESSAGESTRING in meiner CFrameWnd Ableitung eingebaut.
Ich lande aber oftmals doch wieder in der Basisimplementierung von CFrameWnd.Kann mir da jemand weiterhelfen ?
Gruß
Markus
Antworten
-
Hatte ich.
Habe jetzt allerdings nochmal einen kompletten Rebuild gemacht und dann gings.
Gruß
Markus- Als Antwort markiert Martin RichterModerator Mittwoch, 8. Februar 2012 11:31
Alle Antworten
-
Hatte ich.
Habe jetzt allerdings nochmal einen kompletten Rebuild gemacht und dann gings.
Gruß
Markus- Als Antwort markiert Martin RichterModerator Mittwoch, 8. Februar 2012 11:31
-
Gibt es eine MFC Funktion die automatisch die Ampersands aus dem String entfernt ?
Das passiert jetzt bei dem CMFCRibbonLabel::SetText nicht automatisch.strText.Replace(_T("&"),_T(""));
Wenn Du doppelte Ampersands zu in einfachen tauschen willst musst Du IMHO mehr Aufwand treiben.
strText.Replace(_T("&"),_T("&&")); strText.Replace(_T("&&&&"),_T("&")); strText.Replace(_T("&&"),_T(""));
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Bearbeitet Martin RichterModerator Donnerstag, 9. Februar 2012 07:46