Visual c++ 如何在mfc对话框中为静态文本添加右键单击事件处理程序?

Visual c++ 如何在mfc对话框中为静态文本添加右键单击事件处理程序?,visual-c++,mfc,modal-dialog,static-text,Visual C++,Mfc,Modal Dialog,Static Text,任何人都可以告诉我,如何为对话框中的静态文本添加右键单击事件处理程序 所以我有一个模态对话框,上面有一个静态文本控件。当我尝试为它添加事件处理程序时 我只有以下选择: STN_CLICKED STN_DBCLK STN_ENABLE STN_DISABLE NM_THEMECHANGED. 没有右键单击的消息。我需要处理右击事件。您能帮我了解一下,有没有办法添加右键单击事件处理程序?您能做的是 确保静态控件具有唯一的ID,例如:IDC\u STATIC1。它不能是静态的 使用ClassWiza

任何人都可以告诉我,如何为对话框中的静态文本添加右键单击事件处理程序

所以我有一个模态对话框,上面有一个静态文本控件。当我尝试为它添加事件处理程序时

我只有以下选择:

STN_CLICKED
STN_DBCLK
STN_ENABLE
STN_DISABLE
NM_THEMECHANGED.

没有右键单击的消息。我需要处理右击事件。您能帮我了解一下,有没有办法添加右键单击事件处理程序?

您能做的是

  • 确保静态控件具有唯一的ID,例如:
    IDC\u STATIC1
    。它不能是静态的

  • 使用
    ClassWizard
    将控件与
    CStatic
    变量关联

  • 使用编辑器覆盖对话框的
    OnContextMenu

  • 现在,您可以执行以下操作:

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

  • 你不能。最好将静态控件子类化,并将您自己的右键向下处理程序添加到该控件中。您不能将右键单击添加到对话框本身吗。测试该点是否位于Cstatic边界上?如果是,请显示菜单?