CMenu::EnableMenuItem wirkt nicht



  • Hallo,

    ich habe eine SDI-Anwendung (mit Klassenassistent erstellt) am laufen. Wenn ich in der Klasse CMainFrame ein Item mit EnableMenuItem(...) grau darstellen will, hat das überhaupt keinen visuellen Effekt, obwohl der Code sachgerecht ausgeführt wird. Der Code schaut so aus:

    void CMainFrame::OnVdrActivate() 
    {
    	// TODO: Code für Befehlsbehandlungsroutine hier einfügen
    
    	CMenu* pMenu = GetMenu();
    	CString strMenuItem;
    
    	//pMenu->GetMenuString(ID_VDR_SCH_NODENAME, strMenuItem, MF_BYCOMMAND);
    	int ret = pMenu->EnableMenuItem(ID_VDR_SCH_NODENAME, MF_GRAYED);
    	/*BOOL bRet = pMenu->ModifyMenu(ID_VDR_SCH_NODENAME, 
    								  MF_STRING+MF_GRAYED,
    								  ID_VDR_SCH_NODENAME,strMenuItem);*/
    
    }
    

    Alle auskommentierten Versionen bringen auch nix.
    Ich habe die Vermutung, das es an etwas ganz anderem liegt. Wenn ich nämlich das Menü mit dem Klassenassistenten bearbeite, und einem Item die Eigenschaft "grau" zuweise, wird es nach dem Start der Anwendung eben nicht grau dargestellt. Es wird ganz normal zum anklicken dargestellt. Wenn ich dieses Problem erst einmal lösen könnte, ergibt sich evtl. das vorher beschriebene von selbst.

    Nicht beirren lassen, zumindest bei mir wird unter der großen Codebox eine kleine etwas verstümmelte dargestellt. Die nicht beachten. Alle nötige Info steht schon in der großen Box.

    Was ist nur los?



  • int ret = pMenu->EnableMenuItem(ID_VDR_SCH_NODENAME, MF_GRAYED|MF_BYCOMMAND);
    

Anmelden zum Antworten