苏一呀 2023-06-26 10:04 采纳率: 50%
浏览 12
已结题

duilibi的temdbclick不能用

duilib的itemdbclick为什么不能用啊,我看着宏定义也有
#define DUI_MSGTYPE_ITEMDBCLICK (_T("itemdbclick"))
但是就是不知道为什么不能用

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-06-27 09:41
    关注

    DUI_MSGTYPE_ITEMDBCLICKDuilib 中定义的消息类型,用于处理列表控件中的项双击事件。如果您无法使用 DUI_MSGTYPE_ITEMDBCLICK 处理项双击事件,可能是由于以下原因:

    1. 没有设置列表控件的项双击消息处理函数

      在使用 DUI_MSGTYPE_ITEMDBCLICK 处理列表控件的项双击事件之前,需要先设置列表控件的项双击消息处理函数。可以使用 CListUI::AttachBubbledEvent 函数来设置:

      ````c++
      pListUI->AttachBubbledEvent(DUI_MSGTYPE_ITEMDBCLICK, OnItemDoubleClick);
      ```

      在上面的示例代码中,pListUI 是指向列表控件的指针,OnItemDoubleClick 是项双击消息处理函数的回调函数。

    2. 没有发送项双击消息

      当用户双击列表控件中的某个项时,列表控件会向父容器发送项双击消息。如果父容器没有正确处理这个消息,就无法触发项双击事件。在父容器中,需要使用 CControlUI::HandleMessage 函数来处理项双击消息:

      ````c++
      LRESULT CMyControlUI::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
      {

      if (uMsg == WM_NOTIFY && wParam == DUI_MSGTYPE_ITEMDBCLICK)
      {
          // 处理项双击事件
          return OnItemDoubleClick(uMsg, wParam, lParam);
      }
      else
      {
          return __super::HandleMessage(uMsg, wParam, lParam);
      }
      

      }
      ```

      在上面的示例代码中,CMyControlUI 是父容器的类名,OnItemDoubleClick 是项双击消息处理函数的回调函数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月8日
  • 已采纳回答 6月30日
  • 创建了问题 6月26日

悬赏问题

  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀
  • ¥15 mifare plus卡认证
  • ¥30 LSTM预测结果是一条直线
  • ¥15 stnodeeditor自定义控件
  • ¥15 SDO如何更改STM32的波特率