DuiLib扩展

2017-10-24  本文已影响0人  ORCLee

前言

DuiLib中的某些控件不能很好的区分鼠标左击、右击和双击等操作,如树控件,但实际应用中又需要。对于这样的情况,我们可以通过修改界面库源码来扩展控件的功能。

原因分析

树控件为例来说明。树控件之所以不支持鼠标右击,是因为DuiLib对树控件的鼠标左击事件和右击事件都发送了DUI_MSG_ITEMCLICK消息。具体可以查看UIList.cpp文件中CListContainerElementUI::DoEvent部分的代码。

if( event.Type == UIEVENT_BUTTONDOWN || event.Type == UIEVENT_RBUTTONDOWN )
{
   if( IsEnabled() ){
       m_pManager->SendNotify(this, DUI_MSGTYPE_ITEMCLICK);
       Select();
       Invalidate();
   }
   return;
}

消息扩展

以扩展树控件的鼠标右击来说明。

上一篇 下一篇

猜你喜欢

热点阅读