解决: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即可。

mfc checkbox 自绘 事件无效

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部