Problem mit Menüleiste - deaktivierte Items

anmae

Erfahrenes Mitglied
Hallo,

ich habe ein paar Probleme mit der standard Menüleiste einer MDI Anwendung.

ich erzeuge meine mainframe so:
Code:
		pMainFrame = new CMainFrame;
		if (!pMainFrame->LoadFrame(IDR_MAINWND))
			return FALSE;
Das Problem ist nun, daß er alle von mir von Hand eingefügten Einträge in der Menüleiste IDR_MAINWND ausgraut.
Wieso
Wie kann ich das umgehen?
 
Nuja, wenn man mit MFC arbeitet, muss man sich ans MFC-System halten. Manuelle Einträge gehören da nicht dazu.

MFC hat einen eingebauten Menü-Eintrag-Prüfer. Wenn ein Menü-Eintrag keinen Handler zugeordnet hat (was man ja nur über den Dialog-Editor bzw. die Eigenschaften-Seiten) machen kann, wird er ausgegraut. Und das trifft für manuelle Menüeinträge eben zu.

Hier (http://www.mvps.org/vcfaq/mfc/3.htm) gibt es eine einfache Lösung.
 
Danke erstmal,

ich glaube aber ich hab da was nich so richtig verstanden.

meine Funktion sieht jetz so aus:
Code:
OnCmdMsg(){
if(nCode == CN_COMMAND)
 return CMainFrame::OnCmdMsg();
return 1;
}

ist aber nen bissl wenig oder?
Punkt 2 der Anleitung mß ich ja auch noch irgendwie verarbeiten !?
 
Da stand noch was von CmdUI:

Du müsstest einen pExtra-Pointer bekommen, der ein CCmdUI-Objekt darstellt.


Code:
if ( nCode == CN_UPDATE_COMMAND_UI )
{
  CCmdUI* pCmdUI = (CCmdUI*)pExtra;

  // mit dem pCmdUI kannst du jetzt dein Menüitem aktivieren/deaktivieren/checken/usw.
 
  pCmdUI->Enable();
  return TRUE;
}

return CMainFrame::OnCmdMsg();
 
Ah, ja

danke dir und sorry der Nachfrage - war ja eigendlich logisch :)

und nen frohes neues wünsch ich dir noch - hast mir schon oft gut geholfen
 
Zurück