duilib中类库结构及各控件响应的消息类型
DirectUI 取名自微软的一个窗口类名“DirectUIHWND”,意为Paint on parent dc directly。 即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。DUI不使用Win32 标准控件, 所有的控件都是使用GDI函数绘制在窗口上的. 所有的对控件的绘制, 以及消息消息向控件的路由, 都由DUI库的开发者自己实现。
如何鉴定一个客户端的界面是否基于DUI或者html开发的?
使用spy++拖到到界面窗口中,如果整个界面只有一个窗口句柄,那么该界面就是一个DirectUI,否则窗口中的按钮、标题栏、Label都应该具有自己的句柄。类库结构如下图所示:
响应消息类型
消息 | 说明 | Sender |
---|---|---|
click | 鼠标点击 | CButtonUI |
dropdown | 下拉显示 | CComboUI |
headerclick | 点击列标题 | CListHeaderItemUI |
itemactivate | CListElementUI、CListContainerElementUI | |
itemclick | 单击选项 | CListLabelElementUI、CListContainerElementUI |
itemselect | 选择选项 | CComboUI、CListUI |
killfocus | 失去焦点 | CControlUI |
link | CTextUI、CListTextElementUI | |
menu | CButtonUI、CControlUI | |
return | 回车 | CEditWnd、CRichEditUI |
scroll | 滚动 | CScrollBarUI |
selectchanged | 变更选项 | COptionUI |
setfocus | 获得焦点 | CControlUI |
showactivex | CActiveXUI | |
textchanged | 文本被改变 | CEditWnd |
tabselect | 标签页被选中 | CTabLayoutUI |
timer | CControlUI | |
valuechanged | 值发生变化 | CSliderUI |
windowinit | 窗体初始化 |