CDockablePane使用及例項

2021-06-09 02:27:28 字數 1941 閱讀 8094

文章為網上一網友寫的,自己實際參考並執行,加入了自己的一點感悟,僅供學習、測試及參考,不對之處還請指正,共同學習~~

編譯工具:vs2010

內容一:新建乙個cdockablepane派生類。

新建乙個單文件

從cdockablepane派生出乙個pane類

在mainfrm中加入:

pane pane;

在mainfrm的oncreate的方法中加入

// todo: 在此新增您專用的建立**

if (!pane.create(_t("面板"), this, crect(0, 0, 200, 200), true, 1001, ws_child | ws_visible | ws_clipsiblings | ws_clipchildren | cbrs_left | cbrs_float_multi))

pane.enabledocking(cbrs_align_any);

dockpane(&pane);

在begin_message_map(cmainframe, cframewndex)與end_message_map()中間加入

on_wm_create()

執行得到:

注釋:自己測試面板顯示和隱藏時會出現重影,這是正常的表現,因為面板裡面沒有任何顯示的內容,也無新增任何響應事件

cdockablepane類可以用來建立停靠欄。可以將其他控制項整合到cdockablepane的派生類中。本文描述如何將對話方塊整合到cdockablepane中。整合其他控制項的方式類似。

1、首先建立多文件應用程式,建立乙個對話方塊類ctestdlg。

2、在程式新增乙個停靠欄類,名為controlpanel,其父類為cdockablepane,在該類中新增對話方塊成員。

需要將對話方塊的style設定為child。另外border設定為none的話,得到的介面看上去會更主流一點。

class controlpanel : public cdockablepane

2: ;
3、在controlpanel的oncreate方法中建立並顯示對話方塊。

int controlpanel::oncreate(lpcreatestruct lpcreatestruct)

2:
4、controlpanel銷毀時,對話方塊也銷毀掉:

void controlpanel::ondestroy()

2:
void controlpanel::onsize(uint ntype, int cx, int cy)

2:
12: }
6、在框架類中新增controlpanel成員:

class cmainframe : public cmdiframewndex

2: ;
7、在框架類建立時,建立這個controlpanel物件:

create函式裡面的666是這個停靠欄的id,這裡是隨便指定的乙個數值,只要不和其他已用資源重複即可,真正應用的時候,以在字串表中新增乙個id。

int cmainframe::oncreate(lpcreatestruct lpcreatestruct)

2:
編譯執行後,可以發現框架中新增了乙個停靠欄,之前建立的那個對話方塊嵌入在裡面。(讀者可以自己在面板對話方塊中新增乙個按鈕,並加入響應事件)

CDockablePane建立自己的盤子

一直在模仿,從未超越。cmainframe中 建立物件 在cmainframe oncreate中,建立自己的盤子 cstring strclassview1 bnamevalid strclassview1.loadstring ids class view assert bnamevalid i...

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...