duilib中HandleMessage的使用说明
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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就可以啦