006
18.07.2005, 14:43 Uhr
GuenniAtWork
|
Danke für den Tipp.
habs jetzt so:
C++: |
// KontextMenu.cpp : Implementierungsdatei //
#include "stdafx.h" #include "To-Do.h" #include "KontextMenu.h" #include ".\kontextmenu.h"
// CKontextMenu
IMPLEMENT_DYNAMIC(CKontextMenu, CWnd) CKontextMenu::CKontextMenu() { m_lMenu = new CMenu; // Zeiger auf Menü //*** Zeiger auf Fenstermenü holen m_lMenu->LoadMenu(IDR_CONTEXT); }
CKontextMenu::~CKontextMenu() { delete m_lMenu; }
BEGIN_MESSAGE_MAP(CKontextMenu, CWnd) // ON_COMMAND(ID_KONTEXTNEU, OnKontextneu) //ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste) //ON_UPDATE_COMMAND_UI(ID_EDIT_DELETE, OnUpdateEditDelete) END_MESSAGE_MAP()
//*** CKontextMenu-Methoden void CKontextMenu::ShowMenu(CWnd* pWnd, CPoint point) { CPoint m_pPoint; // Kopie der Mausposition //*** Mausposition in lokale Variable kopieren m_pPoint = point; //*** Zeiger auf erstes Untermenü holen m_lMenu = m_lMenu->GetSubMenu(0); //*** Popup-Menü anzeigen m_lMenu->TrackPopupMenu(TPM_LEFTALIGN + TPM_LEFTBUTTON, m_pPoint.x, m_pPoint.y, pWnd, NULL); //*** zum Testen EnableMenuEntry(ID_KONTEXT_BEARBEITEN,FALSE); }
//*** Menüpunkt ein/aus void CKontextMenu::EnableMenuEntry(int iID, bool bEnable) { m_lMenu = m_lMenu->GetSubMenu(0); ASSERT(m_lMenu); //*** Menüpunkt aktivieren if (bEnable) m_lMenu->EnableMenuItem(iID,MF_BYCOMMAND | MF_ENABLED); //Menüpunkt aktiviernen else m_lMenu->EnableMenuItem(iID,MF_BYCOMMAND | MF_GRAYED | MF_DISABLED); //Menüpunkt deaktivieren }
|
Geht noch nicht. Anzeigen unktioniert, aber in EnableMenuEntry geht das Prog erst wenn das Kontextmenü wieder geschlossen ist. Und da gibt es das Menü nicht mehr, deshalb bekomme ich ne Fehlermeldung. Ich denke mal da muss ich irgendwas mit Meldungshandlern machen, aber mit welchem, oder doch nicht? -- Gruß GuenniAtWork Dieser Post wurde am 18.07.2005 um 14:54 Uhr von GuenniAtWork editiert. |