duilib在uimanager.h裡的eventtype_ui列舉裡定義了很多控制項命令,如字元輸入、雙擊、滑鼠離開等等,然而這些事件不是在所有控制項上都會得到處理,所以當我們有需要響應這些事件而對應的原生控制項又沒有處理時,那就要自己派生乙個控制項去處理這個的事情了。方法很簡單:繼承需要的控制項,然後覆蓋它的虛函式virtual void doevent(teventui& event),呼叫sendnotify函式,把要處理的事件告訴uimanager。這樣控制項所在的對話方塊就能收到對應該事件的訊息。
下面舉個例子,讓chorizontallayoutui響應滑鼠進入
事件,效果如下:
第一步:自定義新控制項,繼承chorizontallayoutui
class chorizontallayoutuiex : public chorizontallayoutui
;
第二步:實現doevent()函式,**uievent_mouseenter通知
void chorizontallayoutuiex::doevent( teventui& event )
//其他事件用父類方法處理
__super::doevent(event);
}
標頭檔案宣告:
class maindlg: public windowimplbase
cpp實現:
//定義《訊息,響應函式》對映關係
dui_begin_message_map(maindlg,windowimplbase)
dui_on_msgtype(dui_msgtype_mouseenter,onmouseenter)
dui_end_message_map()
//滑鼠進入響應函式實現
void maindlg::onmouseenter( tnotifyui& msg )
}
大功告成! DuiLib實現自定義控制項
在duilib中實現自定義控制項,和qt過載類似,也是繼承原有的控制項只不過是要將這個控制項也能在xml中進行使用。當作xml中的乙個節點。下面就看一下我寫的乙個小例子,這個例子是過載了乙個按鈕 cbuttonui 過載cbuttonui的標頭檔案 subcontrol.h ifndef subco...
Duilib建立新增自定義控制項
本篇參考資料 duilib自定義控制項博文 duilib開發基礎 建立自定義控制項的過程 duilib是乙個強大的c 介面庫,相比mfc,它對於程式設計師來說更加友好。不僅易懂易學,做出的介面效果還比較美觀。據悉,現在市面上很多桌面應用都是直接或間接地基於duilib來製作的。這篇博文主要介紹如何把...
duilib 自定義屬性列表
好久沒動duilib 了 duilib 自帶的預設屬性,思想是不錯的,但都知道比較難用,一不小心就所有替換,還來個莫名其妙。size 800,572 sizebox 4,4,6,6 roundcorner 5,5 caption 0,0,0,90 mininfo 800,570 name vscro...