在對話方塊中新增狀態條

2021-04-01 07:01:30 字數 2890 閱讀 8617

在對話方塊中新增狀態條

在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檔案,並在其頂部加下面的**

:

static

uint 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

訊息控制代碼中新增以下**:

void

cdlgstatusbardlg::ontimer(uint nidevent)

cdialog::ontimer(nidevent);

}

步驟

8 –顯示x和

y座標

假設在你的對話方塊中移動滑鼠時顯示滑鼠的

x,y座標。你所需要做的是重寫

onmousemove

void

cdlgstatusbardlg::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...