我正在使用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
}有什么办法解决这个问题吗?
谢谢。
发布于 2014-12-04 21:17:18
另一种捕获此事件的方法是使用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消息。如果没有,您可能会遇到一些奇怪的bug。
https://stackoverflow.com/questions/27278672
复制相似问题