給基於對話方塊的MFC程式新增狀態列並實時顯示時間

2021-06-18 02:29:01 字數 1231 閱讀 7334

出自:

1.首先在string table 裡新增兩個字串,id分別為ids_indicator_message and ids_indicator_time

2.在你的 dlg.h 類裡面加個 cstatusbar m_bar;

3.在dlg.cpp 開頭加上

static uint indicators = ;

4.oninitdialog 裡面加上

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,ids_indicator_message,

sbps_normal,rect.width()-100);      

m_bar.setpaneinfo(1,ids_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);

5.時間顯示

oninitdialog 裡面加 settimer(1,1000,null);

為你的dlg類新增wm_timer的響應函式,在其中新增**:

ctime t1;

t1=ctime::getcurrenttime();

m_bar.setpanetext(1,t1.format("%h:%m:%s")); 

cdialog::ontimer(nidevent);

這樣新增的程式剛開始執行時在時間一欄中顯示的是初始設定的字元,為了使程式在剛開始執行時就顯示系統時間,可在m_bar.setpaneinfo(1,ids_indicator_time,sbps_stretch ,0);後新增如下**:

ctime t1;

t1=ctime::getcurrenttime();

m_bar.setpanetext(1,t1.format("%h:%m:%s"));

這樣在程式剛啟動時就會顯示系統時間,然後實時更新

MFC基於對話方塊程式

001 020 else if nresponse idcancel 如果對話方塊是用取消來關閉的,則 021 025 026 由於對話方塊已關閉,所以將返回 false 以便退出應用程式,027 而不是啟動應用程式的訊息幫浦。028 return false 029 因為initinstance ...

MFC 基於對話方塊 程式,如何新增狀態列

通過網上查資料和自己試驗,發現以下兩種方法 一 1 在要新增狀態列的對話方塊類的類定義中 cstatusbarctrl m statbar 2 在oninitdialog中或其它合適的訊息響應中加如下 函式可檢視msdn m statbar new cstatusbarctrl rect m rec...

MFC 基於對話方塊 程式,如何新增狀態列

from 通過網上查資料和自己試驗,發現以下兩種方法 一 1 在要新增狀態列的對話方塊類的類定義中 cstatusbarctrl m statbar 2 在oninitdialog中或其它合適的訊息響應中加如下 函式可檢視msdn m statbar new cstatusbarctrl rect ...