2016-06-23 17 views
0

Kann mir bitte jemand sagen, wie Sie einen Rechtsklick-Event-Handler für einen statischen Text in einem Dialogfeld hinzufügen.Wie Rechtsklick Ereignishandler für statischen Text in MFC-Dialog hinzufügen?

So habe ich eine modale Dialogbox, auf der ich eine statische Textkontrolle habe. Wenn ich versuche, Event-Handler für es hinzuzufügen,

Ich habe nur Optionen:

STN_CLICKED 
STN_DBCLK 
STN_ENABLE 
STN_DISABLE 
NM_THEMECHANGED. 

gibt keine Meldung für Rechtsklick ist. Und ich muss mit Rechtsklick-Ereignis umgehen. Können Sie mir bitte helfen, zu wissen, gibt es eine Möglichkeit, Rechtsklick-Event-Handler hinzuzufügen?

+1

Sie können nicht. Es ist besser, das statische Steuerelement als Unterklasse zu verwenden und stattdessen einen eigenen Right-Button-Down-Handler hinzuzufügen. –

+1

Können Sie nicht einen Rechtsklick auf den Dialog selbst hinzufügen. Testen Sie den Punkt auf der Cstatischen Grenze? Wenn ja, zeige das Menü? –

Antwort

2

Was können Sie tun, ist dies ...

  1. Stellen Sie sicher, dass statische Kontrolle eine eindeutige ID hat, zum Beispiel: IDC_STATIC1. Es kann nicht IDC_STATIC sein.

  2. Verknüpfen Sie die Steuerung mit einer CStatic Variablen unter Verwendung der ClassWizard.

  3. Überschreiben Sie die OnContextMenu für Ihren Dialog mit dem Editor.

  4. Jetzt können Sie so etwas wie:

    void CMFCApplication1Dlg::OnContextMenu(CWnd* pWnd, CPoint point) 
    { 
        CRect rect; 
    
        m_staticLabel.GetWindowRect(&rect); 
        if (rect.PtInRect(point)) 
        { 
         // Show context menu 
        } 
    }