duilib高階 自定義控制項響應指定命令

2021-07-10 05:34:39 字數 1128 閱讀 2855

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...