在對話方塊中新增狀態條
在c++
論壇裡,有人曾問怎樣在對話方塊中加狀態條,我愚蠢地答覆,他只要在
dialog
類中加cstatusbar
成員m_bar
,然後在
oninitdialog()
中呼叫m_bar.create()
就行了。然後有人繼續跟帖,這樣並不湊效,我就親自試了一下,果不料不行。無論如何,我認為這不是個太複雜的任務。因此我寫了這篇關於在
dialog
中新增statusbar
的小文章。在
msdn
的範例中有這樣的例子,但它是通過
cstatusbar
繼承而來的,並適用於做一些複雜的事,這對於通常的狀態條來說並不是必須的。步驟1
我先假定你有個基於
mfc應用程式的對話方塊準備用於解釋本篇中要講述的問題。從
view
選單中選擇
resource symbols,
並增加兩個新的符號,
id_indicator_nish
和
id_indicator_time
.
你可以使用
vs 6
建議的預設值,但有時可能建議的值先前已定義,在此時,你就必須手動修改它。我認為這是必須的。我想知道這是不是個已知的
bug.步驟2
開啟你的
string table
,並在此新增兩個入口
-id_indicator_nish
和
id_indicator_time
.
設定一些預設值,這些值可以任意設定。這實際上沒多大關係。步驟3
在主dialog
類中增加資料成員
cstatusbar:
cstatusbar m_bar;步驟4
開啟相應的
cpp檔案,並在其頂部加下面的**
:
staticuint based_code indicators =
;步驟
5現在我們要做的就是建立
statusbar,
在cdialog
繼承類的函式
m_bar.create(this
); //we create the status bar
m_bar.setindicators(indicators,2);
//set the number of panes
crect rect;
getclientrect(&rect);
//size the two panes
m_bar.setpaneinfo(0,id_indicator_nish,
sbps_normal,rect.width()-100);
m_bar.setpaneinfo(1,id_indicator_time,sbps_stretch ,0);
//this is where we actually draw it on the screen
repositionbars(afx_idw_controlbar_first,afx_idw_controlbar_last,
id_indicator_time);
步驟6-
背景色在步驟
5末,我們實際上在螢幕上已經有了個狀態條。兩個窗格中顯示在
string table
中設定的值。但現在如果想改變背景色,以下就是完全可選的。你可在
oninitdialog()
中新增一行**
m_bar.getstatusbarctrl().setbkcolor(rgb(180,180,180));
注意我們必須獲取潛在的
statusbar
控制項去呼叫
setbkcolor
函式。步驟
7-
新增時鐘
假設,你想在右邊的方格中顯示當前的時間,首先,設定時鐘,這個可通過在
oninitdialog()
中新增下行**:
settimer(現在在100,
1000
,null);
wm_timer
訊息控制代碼中新增以下**:
voidcdlgstatusbardlg::ontimer(uint nidevent)
cdialog::ontimer(nidevent);
}步驟
8 –顯示x和
y座標
假設在你的對話方塊中移動滑鼠時顯示滑鼠的
x,y座標。你所需要做的是重寫
onmousemove
voidcdlgstatusbardlg::onmousemove(uint nflags, cpoint point)
為對話方塊新增狀態條
resource view insert string table new 開啟string table資源,新增兩個id為ids panel1 和 ids panel2的字串資源 為對話方塊新增成員變數 cstatusbar m wndstatusbar 為對話方塊新增狀態條 在對話方塊的初始化過...
MFC 在對話方塊中新增工具條
1.在resourceview裡加入 資源,命名idr 1 2.在主程式的.h檔案中加入變數 c m wnd 新增工具欄 cimagelist m il 使工具欄圖示顯示256色3.在主程式的.h檔案中加入函式 afx msg bool ontooltiptext uint nid,nmhdr pn...
VC6 在對話方塊中開啟新對話方塊
在應用軟體中,常需要在當前視窗或對話方塊中再開啟乙個對話方塊,如button按鈕開啟 圖示按鈕開啟 選單選項開啟等,這樣就需要建立對話方塊。對話方塊分模態對話方塊和非模態對話方塊。具體的區別可以到網路上查詢。建立這兩種對話方塊的方法為 1 建立一非模態對話方塊 cmydlg pmainwnd new...