MiniGUI實現擴充套件控制項

2021-06-28 09:07:24 字數 1342 閱讀 3126

minigui就不作詳細介紹了。 反正就是嵌入式方面用的比較廣泛的一套開源的東西。 不過貌似現在新版本不開源了。

其實貌似mgncs這套東西實現了按鈕的擴充套件的,不過不知道怎麼用,丫的一點介紹都沒得。

無賴就自己寫了。 乙個自定義按鈕類。 可以實現載入,滑鼠滑動會有相應的效果。

static int loadmybitmap()

if(!loadbitmap(hdc_screen,&bmp,"bmp.bmp"))  return 1;         //loadbitmap函式忘了 差不多就這樣。下班回來寫的。沒搞**

static int unloadmybitmap()

unloadbitmap(&bmp);

static int buttoncontrolproc(hwnd hwnd,int message,wparam wparam,lparam lparam)

hdc     hdc;

switch(message)

case msg_paint:               //設定一開始的按鈕外觀,貼圖,或者加文字什麼的。都可以在這裡搞。

hdc = beginpaint(hwnd);

rect  rect;

getclientrect(hwnd,&rect);

fillboxwithbitmap(hdc,rect.left,rect.top,rect.right,rect.bottom,&bmp);

endpaint(hwnd,hdc);

case msg_mousemove:          //這個訊息是當滑鼠落在該視窗上時觸發。在這裡就將點陣圖換成其他的,就可以達到動態效果

case  msg_mousemovein:     //這個訊息是當滑鼠從該視窗上移出去是觸發,將視窗位圖還原成最開始的點陣圖。

case msg_lbuttondown:           //這個不說就知道了把。滑鼠左鍵按下觸發,設定位圖

case msg_lbuttonup://  滑鼠左鍵彈起觸發,還原位圖。

defaultcontrolproc(hwnd,message,wparam,lparam);

registermycontrol()

wndclass myclass;

myclass.dwclassname = 類名。

不想寫了,記不清楚  將myclass成員賦值後,

registerclass(&myclass);

unregistermycontrol()

unregisterclass(類名);

這就實現了 乙個自定義按鈕控制項, 使用的話在對話方塊資料裡面想普通控制項一樣使用就是。 注意自定義控制項要多傳送訊息。來實現效果。

minigui控制項管理之建立控制項

所有的控制項都是通過 createwindow 這個函式建立的,該函式是乙個巨集,定義於 include window.h 可以看出,對該函式的呼叫實際是呼叫了 createwindowex 它的定義在 src gui window.c 第4533行 正是從我們前面說的全域性hash表 ccitab...

minigui控制項管理之銷毀控制項

控制項的銷毀是由函式 destroywindow 完成的,src gui window.c 它開始會向控制項傳送 msg destroy 訊息,在編輯框控制項的視窗過程中是這樣處理的src control edit.c sledit destroy 這個函式所做的工作就是釋放該控制項所佔的資源。傳送...

minigui控制項管理之登出控制項類

1 系統登出 系統中登出控制項類的 在 src gui ctrlclass.c 檔案中 可以看出,它將 ccitable 中註冊的所有控制項類所佔的記憶體資源都都釋放掉了。這裡沒什麼好說的。2 登出自定義控制項類 如果要登出自定義的控制項類可通過 unregisterwindowclass 函式實現...