文章為網上一網友寫的,自己實際參考並執行,加入了自己的一點感悟,僅供學習、測試及參考,不對之處還請指正,共同學習~~
編譯工具: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 ...