在 CListBox 的空白区域双击不会调用我的双击函数

Posted

技术标签:

【中文标题】在 CListBox 的空白区域双击不会调用我的双击函数【英文标题】:Double click in empty area of CListBox does not call my double click function 【发布时间】:2014-12-03 18:09:15 【问题描述】:

我正在使用 Visual Studio MFC 进行 GUI 编程。

我目前有一个 CListBox,我希望它在我双击它的空白部分时调用一个函数。 (当没有选择任何项目时)目前,我只能通过按单独的按钮向其中添加项目。

我编写了以下测试代码来测试 CListBox 是否响应在空白处双击。

BEGIN_MESSAGE_MAP(CScnBuildDlg, CDialog)
    ON_LBN_DBLCLK(IDC_EVENT_LIST, OnDblclkEventList)
END_MESSAGE_MAP()

void CScnBuildDlg::OnDblclkEventList() 

    exit(-1); //Currently, it only exits when double clicking on a specific item, not on an empty space

关于如何解决这个问题的任何想法?

谢谢。

【问题讨论】:

Why double click event detecting on empty area of listBox in mfc 的可能重复项 【参考方案1】:

使用CWnd::Oncommand 可以捕获此事件的另一种方法。如果您将此事件处理程序添加到您的对话框代码中,如下所示,您将能够捕获双击。

BOOL CScnBuildDlg::OnCommand(
    WPARAM wParam,
    LPARAM lParam
    )
    
    if (LOWORD(wParam) == IDC_EVENT_LIST && HIWORD(wParam) == LBN_DBLCLK)
        DoSomething ();
    return CDialog::OnCommand(wParam, lParam);
    

但是,您需要小心,因为此事件也会捕获对现有列表框项目的双击。您还需要确保允许基类有机会处理 WM_COMMAND 消息。如果没有,您可能会遇到一些奇怪的错误。

【讨论】:

以上是关于在 CListBox 的空白区域双击不会调用我的双击函数的主要内容,如果未能解决你的问题,请参考以下文章

ext中如何实现tab页签的双击关闭?

检测 TableView JavaFX 行上的双击

TextInput 忽略 React Native 上的双击(句点)

使用 DoModal 调用时,对话框不显示 CListBox 内容

检测 SKNode 上的双击

如何处理复合组件中子项的双击?