在對話方塊中增加選單欄,工具欄,狀態列

2021-05-21 17:15:29 字數 2404 閱讀 2917

1.加選單:  

在對話方塊的property對話方塊中style中選中system   menu  

再在property對話方塊中generic中加入選單

2.加工具欄

1。要增加乙個資源idr_*******1

2.記得加乙個成員變數     protected:  c*******   m_wnd******* 3.

bool cmain::oninitdialog()

crect rcclientold;   //   久客戶區rect  

crect rcclientnew;   //   加入*******後的client   rect  

getclientrect(rcclientold);   //    

//   called   to   reposition   and   resize   control   bars   in   the   client   area   of   a   window  

//   the   reposquery   flag   does   not   really   traw   the   *******.     it   only   does   the   calculations.  

//   and   puts   the   new   clientrect   values   in   rcclientnew   so   we   can   do   the   rest   of   the   math.  

//重新計算rect大小  

repositionbars(afx_idw_controlbar_first,  

afx_idw_controlbar_last,  

0,  

reposquery,  

rcclientnew);  

//   all   of   the   child   windows   (controls)   now   need   to   be   moved   so   the   tollbar   does   not   cover   them   up.  

//所有的子視窗將被移動,以免被*******覆蓋  

//   offest   to   move   all   child   controls   after   adding   tollbar  

//計算移動的距離  

cpoint   ptoffset(rcclientnew.left-rcclientold.left,  

rcclientnew.top-rcclientold.top);  

crect rcchild;  

cwnd* pwndchild   =   getwindow(gw_child);     //得到子視窗  

while(pwndchild)   //   處理所有子視窗  

crect rcwindow;  

getwindowrect(rcwindow);   //   得到對話方塊rect  

rcwindow.right   +=   rcclientold.width()   -   rcclientnew.width();   //   修改對話方塊尺寸  

rcwindow.bottom   +=   rcclientold.height()   -   rcclientnew.height();    

movewindow(rcwindow,false);   //   redraw   window  

repositionbars(afx_idw_controlbar_first,afx_idw_controlbar_last,0);  

加狀態列 

1.為所加的對話方塊類加入成員變數         protected:       hwnd    m_hstatuswindow  

//呼叫api函式建立狀態列  

bool cmain::oninitdialog()

;   //設定間隔  

::sendmessage(m_hstatuswindow,   sb_setparts,   sizeof(indicators)   /   sizeof(uint),   (lparam)indicators);  

::sendmessage(m_hstatuswindow,   sb_settext,   0,   (lparam)text("author:th"));  

::sendmessage(m_hstatuswindow,   sb_settext,   1,   (lparam)text("x"));    

::sendmessage(m_hstatuswindow,   sb_settext,   2,   (lparam)text("y")); 

對話方塊增加選單和工具欄

一 對話方塊中增加選單 1 對話方塊中增加選單,只需要在對話方塊oninitdialog 函式中增加響應 即可 cmenu menudlg menudlg.loadmenu idr menu dlg setmenu menudlg 也可以通過對話方塊資源,直接選擇選單id,無需增加任何 2 對話方塊...

給對話方塊新增選單 工具欄 狀態列

先建立乙個基於dialog 的程式,名字叫 dlgmenu 一 如何往基於dialog的程式新增選單 1.1 先新增選單 idr menu1 資源,並加上需要的選單項。1.2 編輯對話方塊資源idd dlgmenu dialog的屬性,在屬性對話方塊中選擇idr menu1即可。1.3 假如您不希望...

在對話方塊中插入 工具欄

一 技術要點分析 所有的windows 控制項 包括工具欄 編輯框等 都派生自 cwnd 類,這就意味著,我們可以用視窗類的 create 函式把它們 建立 並顯示到另乙個視窗 例如對話方塊 上。把工具欄加入到對話方塊中正是使用了這樣的一種方法。通常,我們使用 c ctrl 類 派生自 cwnd 類...