Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Klick auf Menü

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
19.05.2007, 21:35 Uhr
Lensflare



Hi.

basierend auf meinem letzten Thread hier,
Wie reagiere ich auf Mausklicks auf Menüeinträge?

Bisher habe ich es nur hinbekommen darauf zu reagieren, wenn ein bestimmter Menüeintrag "ausgewählt" wird.


C++:
void CTestDlg::OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu)
{
  CDialog::OnMenuSelect(nItemID, nFlags, hSysMenu);

  if(nItemID == ID_MENUTEST) //das ist die ID des Menüeintrags
  {
    MessageBox("!!!");
  }
}


--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 19.05.2007 um 21:37 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.05.2007, 22:09 Uhr
Lensflare



Ich habe mehrere Stunden im Internet nach der Lösung gesucht und nichts gefunden und ein Paar Minuten nachdem ich hier die Frage poste, finde ich plötzlich die Lösung

ich zitiere mal Martin Müller auf
www.wer-weiss-was.de/theme158/article3559368.html


Zitat:

1. In Deinem Dialog musst Du der Eigenschaft "Menü" die Resourcen-ID Deines Menüs zuweisen. (Also im Dialog-Designer den Dialog anwählen und dann unter den Eigenschaften den Eintrag "Menü" suchen). Damit taucht zur Laufzeit dann schon mal über dem Dialog das Menü auf, allerdings ohne Funktionalität.

2. Für jeden Menüpunkt musst Du manuell einen Eintrag in der Message Map Deines Dialogs anlegen, und zwar die Behandlung von ON_COMMAND().
Für einen Menüpunkt mit ID ID_DATEI_NEU bspw.:
ON_COMMAND(ID_DATEI_NEU, &CMeineDialogKlasse::OnDateiNeu)

3. Jetzt ist noch die Methode OnDateiNeu im Headerfile zu deklarieren als "afx_msg void OnDateiNeu()" und...

4. in Deiner Dialogfeldklasse zu implementieren:
void CMeineDialogKlasse::OnDateiNeu()
{
// Hier kannst Du jetzt die Behandlung von Datei/Neu ausprogrammieren.
}



Also hat sich erledigt


EDIT:
Das ist nur nötig, wenn es eine dialogbasierte MFC anwendung ist. Andernfalls kann man einfach im Designmodus doppelt auf den Menüeintrag klicken.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 19.05.2007 um 22:31 Uhr von Lensflare editiert.
 
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: