學習VS2010 狀態列的程式設計

2021-06-19 01:52:30 字數 2405 閱讀 1413

vs2010提供了cmfcstatusbar用於控制狀態列的顯示,在狀態列中,可以顯示圖示、進度條、圖形動畫、更改文字的顏色和背景色、雙機相應狀態列產生訊息。

依據狀態列中出現的次序定義常量,確定修改哪乙個狀態列。

const

int nstatusicon = 0;

const

int nstatusinfo = 1;

const

int nstatusprogress = 2;

const

int nstatuslabel = 3;

const

int nstatusanimation =4;

重新修改狀態列的標識函式

static uint indicators =

;設定狀態列的格式

m_wndstatusbar.setpanestyle(nstatusicon, sbps_noborders);

m_wndstatusbar.setpanestyle(nstatusanimation, sbps_noborders);

m_wndstatusbar.setpanestyle(nstatusinfo, sbps_stretch | sbps_noborders);

m_wndstatusbar.setpanewidth(nstatusprogress, 80);

m_wndstatusbar.enablepanedoubleclick();

編輯form資源,加入需要的控制項並程式設計。

要在視類中訪問狀態列控制項,需要編寫函式getstatusbar()

cmfcstatusbar&getstatusbar () const

另外,在cmainframe中加入getstatusbar**

cmfcstatusbar&getstatusbar ()

視類的初始化,修改oninitialupdate函式並加入狀態列相關的控制項初始化**

//動畫圖標的載入

if(m_imlstatusanimation.getsafehandle()==null)

//位圖圖示的載入

if(m_bmpicon1.getsafehandle() == null)

//位圖圖示的載入

if(m_bmpicon2.getsafehandle() == null)

//載入圖示

getstatusbar().setpaneicon(nstatusicon,m_bmpicon1);

getstatusbar().settiptext(nstatusicon,_t("this is tooltip"));

進度條的啟動和停止

if(m_showprogress)

settimer(id_progress_timer,100,null);

getstatusbar().enablepaneprogressbar (nstatusprogress, progress_max);

m_showprogress= true;

m_progressbut.setwindowtextw(_t("stop progress"));

在wm_timer中加入動態進度條的控制**

if(nidevent == id_progress_timer)

getstatusbar().setpaneprogress(nstatusprogress, nprogresspos);

}動畫演示的啟動和停止

if(m_showanimation)

else

圖示的變換

if(m_nicon==0)

m_nicon= 0;

getstatusbar().setpaneicon (nstatusicon, m_bmpicon1);

背景色和顯示文字顏色的改變

m_backcolor= m_backcolorbut.getcolor();

getstatusbar().setpanebackgroundcolor(nstatuslabel,m_backcolor);

m_textcolor= m_textcolorbut.getcolor();

getstatusbar().setpanetextcolor(nstatuslabel,m_textcolor);

滑鼠雙擊狀態列訊息的建立

可以利用狀態列的id建立on_command訊息並建立處理函式,在其中相應該函式即可

最終軟體介面如下:

VS2010 狀態列資訊顯示

步驟 1 現在cmainframe類中定義 cmfcstatusbar m wndstatusbar 有mfc3字母,很多教材都使用cstatusbar 2 定義indicator指示器 static uint indicators 紅色的系統已經預定義了,新增乙個自定義的舉例 在res資源中在st...

vs2010 狀態列新增進度條

步驟 1 在cmainframe類中定義乙個變數 保護型別.cprogressctrl m progress 2 新增indicator指示器 id indicator prog 3 新增wm paint事件,新增 如下 void cmainframe onpaint else m progress...

狀態列的基本程式設計

define idc main status 101 定義狀態列控制項id include windows 通用控制項標頭檔案 init moncontrols 在 twinmain 裡載入 ctl32.dll wm create 在wm create訊息建立狀態列.int parts 5 狀態列分...