Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Cmenu Problem

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 ] > 2 <
010
11.04.2003, 07:48 Uhr
~SnPrCrZ
Gast


Habs ausprobiert.
Kommt der selbe Fehler.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
11.04.2003, 09:02 Uhr
Volle



Hi,

ID=50000 ????

Du solltest an dieser Stelle schon die ID von dem Menü angeben, welches du laden möchtest. Ansonsten ist die Instanz Menu ungültig und ein Aufruf einer Member- Funktion muss zum Absturz führen. Deshalb sollte man solche Funktionen auch immer verifizieren.

z.B. im Debugmode so (MSDN):


C++:
   m_NewMenu.LoadMenu(IDR_SHORT_MENU);
   ASSERT(m_NewMenu);


Grüße, Volle.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
11.04.2003, 10:01 Uhr
~SnPrCrZ
Gast


Hab jetz mal versucht beim erstellen des Menüs eine Membervariable zu verwenden.
Wenn ich dann in meiner Funktion zum auslesen die Anweisung

Code:
m_MyMenu.GetMenuString(ID, hilf, MF_BYCOMMAND);


ausführe stürzt das programm mit dem selben fehler ab.
ID ist der Parameter der Funktion, der die ID des angeklickten Menüitems
enthält. Das Menüitem mit dieser ID existiert auf jeden fall.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
11.04.2003, 11:46 Uhr
Volle



Hallo,

das Problem ist nicht GetMenuString. Es ist egal, ob m_MyMenu eine Membervariable ist oder nicht. Es muss nur gewährleistet sein, dass die Variable eine gültige Instanz von CMenu enthält. Sonst kann der Aufruf der Memberfunktion GetMenuString nicht funktionieren. Deshalb musst die Instanz vorher mit LoadMenu laden. Als Parameter musst du Loadmenu die ID des Menüs mitgeben. Nicht irgendeine beliebige Zahl oder die ID des Menueintrages. So wie es FloSoft ja auch schon gesagt hat. Nehmen wir mal an, du hast das Menü "Datei" mit der ID 100 und dem Untereintrag "Öffnen" mit der ID 101. Dann sollte dein Code in etwa so aussehen:


C++:
    CString entry;
    CMenu menuBuf;
    menuBuf.LoadMenu(100);
    ASSERT(menuBuf);
    menuBuf.GetMenuString(101, entry, MF_BYCOMMAND);



Das sollte schon gehen...

Gruß, Volle.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ 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: