首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CListBox的空白区域双击不会调用我的双击函数

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

Stack Overflow用户
提问于 2014-12-04 02:09:16
回答 1查看 292关注 0票数 0

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

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

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

代码语言:javascript
复制
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
}

有什么办法解决这个问题吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-12-04 21:17:18

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

代码语言:javascript
复制
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消息。如果没有,您可能会遇到一些奇怪的bug。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27278672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档