duilib 发送自定义消息

在duilib中,发送自定义消息通常涉及到WindowImplBase类提供的SendNotify方法。以下是一个简单的例子,展示如何在duilib中发送自定义消息:

首先,你需要定义一个自定义消息的枚举值:

// 自定义消息枚举
enum CustomMessages {
    CM_MY_CUSTOM_MESSAGE = MSG_USER + 1, // MSG_USER是duilib定义的用户消息起始值
};

然后,在你的窗口类中,你需要处理这个消息:

class MyWindow : public WindowImplBase {
public:
    // ...
 
    LRESULT OnCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) {
        // 处理你的自定义消息
        // ...
        return 0;
    }
 
    // ...
 
    BEGIN_MSG_MAP_EX(MyWindow)
        // ...
        MSG_WM_NOTIFY(OnCustomMessage) // 如果是WM_NOTIFY消息
        // 或者其他消息映射
        // ...
    END_MSG_MAP()
};

最后,在需要发送消息的地方,调用SendNotify方法:
// 假设你有另一个控件需要通知这个自定义消息
Control* pControl = ...;
// 发送自定义消息
::SendMessage(GetHWND(), WM_NOTIFY, (WPARAM)pControl->GetInterface(), (LPARAM)CM_MY_CUSTOM_MESSAGE);
这样,当你发送这个消息时,MyWindow窗口类中的OnCustomMessage方法会被调用,你可以在其中处理自定义的消息。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值