這裡示例將mfc按鈕放到duilib滑塊條控制項的位置:
1、準備好乙個duilib控制項來容納mfc控制項,**如下:
//2、將xml中slider節點換成wnd,並且只保留位置資訊,xml如下:將帶控制代碼hwnd的控制項顯示到ccontrolui上面
class cwndui: public
ccontrolui
virtual
void setinternvisible(bool bvisible = true
)
virtual
void
setpos(rect rc)
bool attach(hwnd hwndnew)
m_hwnd =hwndnew;
return
true;
}hwnd detach()
protected
: hwnd m_hwnd;
};
<3、建立wnd控制項:由於slider是duilib內建的控制項,所以duilib會根據xml資訊自動建立slider控制項,而cwndui是我們自定義的控制項,所以需要自己建立,只需要響應createcontrol函式(如果duilib發現自定義控制項,會自動呼叫此函式來獲取控制項),在cduiframewnd加上如下函式:wnd
float
="true"
pos="30,77,0,0"
width
="139"
height
="18"
/>
virtual ccontrolui*createcontrol(lpctstr pstrclassname)上面的**用了win32的按鈕,其中注釋部分是mfc按鈕,親們可以都試下效果:return
null;
}
到現在為止,我們既可以在duilib中新增mfc控制項,也可以在原有的mfc專案中新增duilib控制項,就不用再擔心不能使用以前的控制項啦~o(∩_∩)o~
duilib中mfc控制項的響應
回到win32就行了,我們只需截獲wm_command,而duilib的wm_command等windows訊息可以在handlemessage函式裡截獲,**如下:
lresult cduiframewnd::handlemessage( uint umsg, wparam wparam, lparam lparam )}break
;
default
:
break
; }
return
__super::handlemessage(umsg, wparam, lparam);
}
在MFC中使用Static text控制項顯示訊息
1 新建乙個mfc對話方塊xxdlg,從工具欄拖乙個static text控制項到面板上,右鍵編輯屬性,將id改為idc showmsg 2 開啟類檢視,在cxxdlg上右鍵 新增成員函式void showmsg lpctstr msg 3 在void cmymfcdlg showmsg lpcts...
MFC與duilib之間控制項相互呼叫
一 在mfc中使用duilib控制項 將duilib的控制項視窗的父視窗指定為mfc的視窗,同時在mfc中顯示duilib的控制項視窗。duilib的控制項視窗需要繼承cwindowwnd,inotifyui,實現getwindowclassname getclassstyle onfinalmes...
Duilib學習筆記《03》 控制項使用
高階控制項 一些控制項的基本顯示效果就如同上面兩幅圖所示。實際上,在 duilib學習筆記 01 duilib整體框架認識中我們就已經提到過duilib這個庫的組成,其中就提到了控制項這部分,如下圖所示 對應到工程 中,實際上是分為了兩部分 core和control。core中包含的是所有控制項公用...