解决:mfc checkbox自绘控件 点击事件无效
清泛原创
自绘控件中的代码:
解决方法:
ON_CONTROL_REFLECT(BN_CLICKED, OnClicked)
void CMyCheckbox::OnClicked()
{
m_bCheck = !m_bCheck;
Invalidate();
}
这样可以保证点击后,对控件自绘勾选进行处理,但是使用控件的窗口无法响应BN_CLICKED事件了,即点击事件无效。解决方法:
ON_CONTROL_REFLECT_EX(BN_CLICKED, OnClicked)
BOOL CMyCheckbox::OnClicked()
{
m_bCheck = !m_bCheck;
Invalidate();
return FALSE; //这样外部窗口可以继续处理其BN_CLICKED事件,返回TRUE不处理
}
使用 ON_CONTROL_REFLECT_EX 代替 ON_CONTROL_REFLECT,并且函数返回值为FALSE即可。
上一篇:[精华]VC++对话框程序打印及打印预览的实现
下一篇:MFC 时间控件CDataTimeCtrl使用(获取日期、时间字符串等)