自定义控件时,可以使用重写DoEvent函数给指定的窗口(CPaintManagerUI*对象所在的窗口)发送消息,消息也可以是自定义的。可以参考Duilib库中的click消息,该消息在在EVENTTYPE_UI枚举(UIManager.h)中没有,但是存在于duilib定义的消息(#define DUI_MSGTYPE_CLICK (_T("click")))中。是因为在CButtonUI这个类中保存了一个btn的状态值m_uButtonState,在鼠标按下和抬起时都会改变该值,并在抬起时判断,在使用m_pManager->SendNotify(this, DUI_MSGTYPE_CLICK);给窗口发送消息,从而可以在Notify中捕获到DUI_MSGTYPE_CLICK消息。
Duilib中的DoEvent
最新推荐文章于 2025-02-11 18:37:07 发布