000
14.01.2004, 22:14 Uhr
docreggae
|
Hey
Ich weiß, wie ich einen Eintrag im "Datei" Menu verändern kann, aber wie kann ich in einem Menu , dass so sussieht: "Datei" "Bearbeiten" "Ansicht" "?" den Eintrag "Datei" bearbeiten? Ich versuche mein Programm "multilingual" zu machen. Da die Beschriftungen aus einer Textdatei ausgelesen werden, kann ich leider nicht einfach mehrere Menus erstellen.Gibt es hier eine Möglichkeit, außer das ganze Menu dynamisch zu erstellen? Ich habe meinen Versuch mal gepostet, welcher teilweise (naja, eigentlich fast ganz) aus der MSDN entnommen wurde:
C++: |
CMenu* mmenu = GetMenu();
// Look for "FILE" menu. int pos = FindMenuItem(mmenu, "FILE"); if (pos == -1) return;
CMenu* submenu = mmenu->GetSubMenu(pos); GetPrivateProfileString("Translation","10001","not found",szLabel,sizeof(szLabel),sPath); sLabel.Format(szLabel); pos = FindMenuItem(submenu, "ID_FILE_SAVESELECTIONS"); if (pos > -1) { UINT id = submenu->GetMenuItemID(pos); submenu->ModifyMenu(id, MF_BYCOMMAND, id, sLabel); }
int CProgDlg::FindMenuItem(CMenu* Menu, LPCTSTR MenuString) { ASSERT(Menu); ASSERT(::IsMenu(Menu->GetSafeHmenu())); int count = Menu->GetMenuItemCount(); for (int i = 0; i < count; i++) { CString str; if (Menu->GetMenuString(i, str, MF_BYPOSITION) && (strcmp(str, MenuString) == 0)) return i; } return -1; }
|
|