duilib中HandleMessage的使用说明

来源:赵克立博客 分类: C/C++ 标签:duilib发布时间:2017-10-24 17:50:58最后更新:2017-10-24 17:50:58浏览:2085
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2017-10-24 17:50:58
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

重写这个函数时老是被里面的几个参数给弄混,导致一些很奇怪的问题,下面记录下这个函数怎么重写以防再出现问题

重写声明

virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);

重写定义

LRESULT Toast::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    //此函数的处理返回值 
    LRESULT lRes = 0;
    //消息是否处理,默认为没有处理,每一个消息处理函数最后一个参数传入它的引用,处理成功是否在消息处理函数里处理
    BOOL bHandled = false;
    switch (uMsg) {
    case WM_TIMER:   lRes = OnTimer(uMsg, wParam, lParam, bHandled); break;
    }
    //如果处理啦就从这里返回
    if (bHandled) {
        return lRes;
    }
    else {
        //没有处理的就扔给父类进行处理
        return __super::HandleMessage(uMsg, wParam, lParam);
    }
}

LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

消息处理函数的最后一个参数接收的是引用类型,也就是说处理函数中会根据处理结果来设置bHandled来决定要不要往上传给父类去处理,

lRes是处理是函数的处理返回结果,一般用不到,一般返回0就可以啦



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python