| | | | | | | | | | |||||||
![]() | ![]() | | |||||||||||||
| |||||||||||||||
| |||||||
| Registrieren | Hilfe | Interessengemeinschaften | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
| |
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 |
| Reg.-Benutzer Reg.-Datum: 28.09.2002 Ort: Waldkirchen |
Hallo Leute. ich brauche ein CListCtrl mit Context menü. Und die Klasse soll dann auch auf die ereignisse des Kontext menüs reagieren. Mit folgendem Ansatz hätte ich es versucht. - Ich habe eine neue klasse angelegt und als Basisklasse CListCtrl genommen. - Bei den Resourcen (Visual Studio 6.0) habe ich ein neues Menü angelegt und sie per Klassen Assistenten der neuen Klasse zugeordnet. - in der neuen Klasse habe ich auf das Ereigniss WM_CONTEXTMENU reagiert. und lasse das Context menü erscheinen. Soweit ist alles so wie ich es will. (Context Menü erscheint auch schon) Jetzt zu meinem Problem. Das ListCtrl bekommt von den Ereignissen des Contextmenüs nichts mit! :-(((. Ich kriege die ereignisse weder in der WindowProc (der neuen ListCtrl klasse) mit, noch funktioniert es wenn ich über den Klassenassistenten für jeden Menüeintrag so eine Behandlungsmethode erstellen lasse. Das einzige wo ich die Ereignisse mitbekomme ist in der WindowProc des Dialogfensters. In der WindowProc des Dialogfensters kann ich per if (message == WM_COMMAND && LOWORD(wParam) == ID_TASKMANAGER_COPYPID) Das Ereigniss abfragen. Wobei ID_TASKMANAGER_COPYPID die ID des Menüeintrags ist. Also zu meiner Frage: Gibt es eine Möglichkeit wie ich diese Ereignisse in der Neuen ListCtrl Klasse abfangen kann? Laut MSDN: ist in (HWND) lParam das Handle des Controls. Also hätte ich noch versucht dass in in der WindowProc des Dialogs einfach abfrage wenn (HWND) lParam == <Dem Handle des ListCtrls> ist und dann die Nachricht an die ListCtrlKlasse weiter delegiere. jedoch ist (HWND)lParam immer NULL bei den Ereignissen des Context Menüs. Hat jemand eine gute Idee für mich? Ich möchte die Behandlung der Contetmenü-Ereignisse einfach in der neuen CListCtrl klasse machen. Danke SwordMaster
__________________ LEBENSMOTTO: ****** dir nix, feid dir nix |
| | |
| | #2 |
Administrator + ModeratorC++: Compiler, IDEs, APIs / C und C++, Algorithmik, Basic, Sonstige, .NET Reg.-Datum: 10.07.2001 Ort: Essen |
Wie sieht denn dein Aufruf von TrackPopupMenu aus?
__________________ "Funktioniert nicht" ist keine ausreichende Fehlerbeschreibung. |
| | |
| | #3 |
| Reg.-Benutzer Reg.-Datum: 28.09.2002 Ort: Waldkirchen |
oh man, bin ich .... DANKE hab den fehler durch deinen hinweis gefunden! so hat er ausgesehen. void CContextListCtrl::OnContextMenu(CWnd* pWnd, CPoint point) { m_contextmenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd()); } hab das AfxGetMainWnd() durch "this" geändert und schon läuft alles. da probier ich mortz rum, und dann liegts an so ner Kleinigkeit. Vielen Dank!
__________________ LEBENSMOTTO: ****** dir nix, feid dir nix |
| | |
![]() |
| Tags: clistctrl , context , menue |
| Lesezeichen |
| ||||||
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Java Menü in HP | MidnightPrincess1982 | Webdesign | 6 | 23.09.2004 08:36 |
| Problem mit OpenExchange Server | Freak2k1 | Linux + Unix | 38 | 06.01.2004 12:49 |
| JavaScript Menü Positionieren ? | HackTack1000 | Webdesign | 2 | 09.04.2003 12:38 |
| Nero Burning Rom : Menü auf SVCD | Schledo | Anwendungssoftware | 6 | 15.02.2003 18:18 |
| Mein Menü wird nicht angezeigt ??? | HackTack1000 | Webdesign | 1 | 08.07.2002 11:06 |
![]() |
| |||||