Menu lässt sich nicht ändern
-
Hi,
ich habe folgenden Code :MENUITEMINFO info; ZeroMemory(&info,sizeof(info)); info.cbSize =sizeof(info); info.fMask =MFT_STRING; info.dwTypeData ="Test"; info.cch =lstrlen("Test"); if(FAILED(SetMenuItemInfo(hMenu,ID_NEU,0,&info))) { MessageBox(0,0,0,0); } EnableMenuItem(hMenu,ID_NEU,MF_GRAYED);
Hier sollte das MenuItem in Test umbenannt und disabled werden, doch es wird nur deaktiviert und der Text bleibt wie er war.
Was muss geändert werdenDanke
M.T.
-
[cpp]
MENUITEMINFO info;
ZeroMemory(&info,sizeof(info));
info.cbSize = sizeof(info);
info.fMask = MIIM_TYPE | MIIM_STATE;
info.fType = MFT_STRING;
info.fState = MFS_DISABLED | MFS_GRAYED;
info.dwTypeData = "Test";
info.cch = lstrlen("Test");// SetMenuItemInfo laesst sich **nicht mit FAILED testen
**if(!SetMenuItemInfo(hMenu,ID_NEU,0,&info))
{
MessageBox(0,0,0,0);
}
[/cpp]
-
Erweiterung:
Die Makros FAILED und SUCCEEDED setzt man NUR für das Testen von HRESULT-Werten ein
-
@-King- Danke, hab mich in der MSDN verlesen
@RenèG Danke, wieder was gelernt ...
Kann man eigentlich auch die Obereinträge umbenennen? Wenn ja, wie?
M.T.
[ Dieser Beitrag wurde am 25.10.2002 um 15:46 Uhr von Manuel editiert. ]
-
Obereinträge ?
-
"Obereinträge" kann man auch mit SetMenuItemInfo() ändern, nur musst du als dritten Parameter TRUE angeben und als zweiten Parameter die Position des Items:
SetMenuItemInfo( hMenu, //Handle des Menüs 0, // Position des Obereintrags (0 ist der erste Menüpunkt) TRUE, // muss in diesem Fall TRUE sein &mii); // Pointer auf MENUITEMINFO-Struktur