Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Menukopf verändern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.01.2004, 11:40 Uhr
~global
Gast


hi, also ich mach solche menues immer dynamisch, zum ändern dann einfach...

C++:
    CMenu* TestMenu = (GetMenu())->GetSubMenu(0);
        TestMenu->ModifyMenu(nPosition, MF_BYPOSITION, 0, "neuer String") ;
// nPosition ist UINT und beginnt bei 0 !




gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: