Kontext Menue speziell für ein List Control ???



  • Hallo,

    wie kann ich ein Kontext Menue speziell für ein List Control schreiben ?

    CMenu menu;
    	menu.LoadMenu(IDR_MENU1);
    	menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x, point.y, this);
    

    Mit diesen Code kann ich ein KontextMenue für die ganze Oberfläche des Programms erstellen, ich möchte aber, dass das Menue nur für das List Control gültig ist und nicht für die ganze Oberfläche...

    Danke
    :: NoName ::



  • Du fängst WM_CONTEXTMENU nur im List Control ab und dann rufst du dort deinen Code auf?!



  • Aber ich habe doch keine eigene Klasse für das List Control, wo ich WM_CONTEXTMENU aufrufen kann... 😕 😕 😕



  • kann mir denn niemand helfen, ich komme einfach net klar 😕



  • :: NoName :: schrieb:

    Aber ich habe doch keine eigene Klasse für das List Control, wo ich WM_CONTEXTMENU aufrufen kann... 😕 😕 😕

    Dann mach dir eine 😉

    Devil



  • :: NoName :: schrieb:

    Aber ich habe doch keine eigene Klasse für das List Control, wo ich WM_CONTEXTMENU aufrufen kann... 😕 😕 😕

    Dann erstell dir eine.



  • Einfach WM_CONTEXTMENU abfangen und anschließend ermitteln, ob der Klick in Deinem ListCtrl lag.
    Wenn ja, dann Popup-Menu dort starten:

    /*
    ===================================================================================
    	Klick-Nachricht für Context-Menu abfangen und wenn's in der Liste lag, 
    	Popup-Menu starten
    ===================================================================================
    */
    
    void CMyDlg::OnContextMenu(CWnd* pWnd, CPoint point) 
    {
    	CPoint local = point;
    	CRect rListRect;
    	m_RecordList.ScreenToClient(&local);
    	m_RecordList.GetClientRect(rListRect);
    	if (rListRect.PtInRect(local) != 0)
    	{
    		CMenu popMenu;
    		popMenu.LoadMenu(IDR_POPUP_MENUS);
    		CPoint posMouse = point;
    		popMenu.GetSubMenu(0)->TrackPopupMenu(0,posMouse.x,posMouse.y,this);
    	}
    }
    

    Gruß T. 🙂



  • Danke Theo !!!


Anmelden zum Antworten