【问题标题】:How to add right click event handler for static text in mfc dialog?如何在 mfc 对话框中为静态文本添加右键单击事件处理程序?
【发布时间】:2016-10-25 16:49:53
【问题描述】:

谁能告诉我,如何为对话框上的静态文本添加右键单击事件处理程序。

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

我只有选择:

STN_CLICKED
STN_DBCLK
STN_ENABLE
STN_DISABLE
NM_THEMECHANGED.

右键单击没有消息。我需要处理右键单击事件。你能帮我知道吗,有什么方法可以添加右键事件处理程序吗?

【问题讨论】:

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

标签: visual-c++ mfc modal-dialog static-text


【解决方案1】:

你能做的就是这样......

  1. 确保您的静态控件具有唯一 ID,例如:IDC_STATIC1。它不可能是 IDC_STATIC。

  2. 使用ClassWizard 将控件与CStatic 变量相关联。

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

  4. 现在您可以执行以下操作:

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

【讨论】:

    猜你喜欢
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多