那么如何通过鼠标单击空白处来取消选择项呢?BCGControlBar给了我们最好的答案。

实现方法

1、首先需要重写继承自CBCGPListBox类,我们命名为CTextListBox

class CTextListBox : public CBCGPListBox

{...}

2、由于CBCGPListBox中的HitTest(…)函数是个保护成员函数,所以我们要在CTextListBox类中添加一个公有成员函数并对HitTest(…)值进行返回,-1表示没选中。

int CTextListBox::HitItemTest(CPoint point)

return HitTest(point);

3、之后在对CTexListBox控件(对应的变量名命名为m_SubPro)所在的对话框进行SelectChange消息重写,来实现鼠标单击到某项被选中,单击到空白处被取消。

void CRobotSimSetupDlg::OnLbnSelchangeListSubpro()

CPoint point;