Kontextmenü?
-
hi.
wie erstelle ich Kontextmenüs?
Ich habe folgenden Code mal versucht, aber irgendwie klappt der nichtvoid CFileManagerView::OnContextMenu(CWnd* pWnd, CPoint point) { CMenu* menu; CPoint m_point; m_point = point; ClientToScreen(&m_point); menu = pWnd->GetMenu(); menu = menu->GetSubMenu(5); menu->TrackPopupMenu(TPM_LEFTALIGN , m_point.x, m_point.y, this, NULL); }
würd mich über hilfe sehr freuen!
Hannes
-
schuri schrieb:
aber irgendwie klappt der nicht
Das ist keien ausreichende Fehlerbeschreibung.
Ich vermute aber, dass das Problem ist, dass menu funktionslokal ist, also sofort wieder zerstört wird.
-
ich wollte mit dieser "fehlerbeschreibung" nur sagen, dass es so scheinbar nicht funktioniert.
deshalb habe ich auch allgm. danach gefragt, wie ich kontextmenüs in einer SDI-Anwendung erstellen kann?!
-
nimm mal das:
CMenu oMenu; if (oMenu.LoadMenu(IDR_MENU)) { CPoint oPoint; CMenu* pPopup = oMenu.GetSubMenu(0); ASSERT(pPopup != NULL); GetCursorPos(&oPoint); SetForegroundWindow(); pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, oPoint.x, oPoint.y, this); }
viel zu erklären gibts da nicht, oder !?
-
schuri schrieb:
deshalb habe ich auch allgm. danach gefragt, wie ich kontextmenüs in einer SDI-Anwendung erstellen kann?!
Und ich habe dir geantwortet. Wo ist also das Problem? Hast du meinen Tip, den Red Skall in Quellcode gegossen hat, überhaupt schon getestet?
"Funktioniert nicht" ist insofern keine ausreichende Fehlerbeschreibung, weil man da nciht weiß, was nicht geht. Wird dein Menü nciht angezeigt? Crasht deine Anwendung? Wird das Menü fehlerhaft angezeigt? Usw...