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

2021-06-27 18:11:34 字數 1363 閱讀 4955

from:

通過網上查資料和自己試驗,發現以下兩種方法:

一、(1)在要新增狀態列的對話方塊類的類定義中 cstatusbarctrl *m_statbar;

(2)在oninitdialog中或其它合適的訊息響應中加如下**:(函式可檢視msdn)

m_statbar=new cstatusbarctrl;

rect m_rect; 

getclientrect(&m_rect); //獲取對話方塊的矩形區域

m_rect.top=m_rect.bottom-20; //設定狀態列的矩形區域

m_statbar->create(ws_border|ws_visible|cbrs_bottom,m_rect,this,3);

m_statbar->showwindow(sw_show); 

二、(1)在對話方塊類的.cpp原始檔的開頭加上如下**:

static uint based_code indicators= 

//狀態列的指示器列表,如有未定義的字串名,需在resource view的string table中新增定義

;(2)在要新增狀態列的對話方塊類的類定義中 cstatusbarctrl m_statusbar;

(3)在oninitdialog中或其它合適的訊息響應中加如下**:

//不能是突出和無邊框風格

m_statusbar.createex(this,sbt_tooltips,ws_child | ws_visible | cbrs_bottom,afx_idw_status_bar );

m_statusbar.setindicators(indicators,sizeof(indicators)/sizeof(uint));//設定指示器數量

crect rect;

getclientrect(&rect);

m_statusbar.setpaneinfo(0,id_indicator_caps,sbps_normal,rect.width()/3);//設定指示器視窗的有關資訊

m_statusbar.setpaneinfo(1,id_indicator_num,sbps_stretch ,rect.width()/3);

repositionbars(afx_idw_controlbar_first,

afx_idw_controlbar_last,id_indicator_caps);//很重要****

m_statusbar.getstatusbarctrl().setbkcolor(rgb(180,20,180));//設定背景

m_statusbar.setpanetext(0,"指示器1",0);

m_statusbar.setpanetext(1,"指示器2",0);

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 對話方塊程式 模式對話方塊與非模式對話方塊

一 根據主視窗型別,mfc軟體工程可以分為以下幾種架構模型 例如 記事本和畫筆等。2 mdi multiple document inte ce 多文件介面,乙個主框架視窗下可以同時編輯多份文件。例如 vc 6.0,photoshop等軟體。3 基於對話方塊的軟體模型 主視窗是通過資源管理器,在對話...