zoukankan      html  css  js  c++  java
  • duilib进阶教程 -- 扩展duilib的消息 (11)

      duilib并没有提供双击和右键消息,所以需要我们自行扩展,这里以添加双击消息为例,

      在UIDefine.h里,我们只看到了DUI_MSGTYPE_CLICK消息,却没有看到双击消息,因此需要在这里添加一个双击消息:

      #define DUI_MSGTYPE_DBCLICK                (_T("dbclick"))

      在UIManager.h里可以看到 UIEVENT_DBLCLICK、UIEVENT_RBUTTONDOWN等消息,这是因为它的右键和双击等消息只给了内部的控件使用,这时我们需要让他传递出来,所以需要在CControlUI::DoEvent函数里传递双击消息,如下:

        if( event.Type == UIEVENT_DBLCLICK )
        {
            m_pManager->SendNotify(this, DUI_MSGTYPE_DBCLICK, event.wParam, event.lParam);
            //return;
        }

      这里记住不要return,因为双击消息UIEVENT_DBLCLICK 还需要传递给List等控件。

      然后重新编译一下duilib,就可以响应双击消息啦,

      我们在Notify函数里添加以下代码:

    if( msg.sType == _T("dbclick"))  
    {    
         // 这里会传进来很多次双击消息,所以只获取祖先控件的消息
        if (! msg.pSender->GetParent())
        {
             FullScreen(! m_bFullScreenMode);
        }
    }

      即可响应双击消息,和click一样简单哦~

      需要注意的是:这个消息会从子控件一直传递给父控件,我们如果加了很多Layout控件的话,可以发现会进来很多次dbclick消息,如果我们不想要父控件收到这个消息,可以处理之后直接return。

      其他的消息也差不多,就不赘述了~O(∩_∩)O~





  • 相关阅读:
    pandas之数据读取
    pandas之简单数据统计描述
    人脸识别
    图像识别之物体识别
    图像识别之特征点检测
    图像识别之角点检测
    图像识别之边缘识别
    爬取企查查网站中安徽省内的企业数据信息
    民政局中行政区域数据爬取
    有道翻译和百度翻译在线爬取
  • 原文地址:https://www.cnblogs.com/Alberl/p/3404132.html
Copyright © 2011-2022 走看看