vc 6 0 狀態列程式設計

2021-06-05 15:00:14 字數 2399 閱讀 5452

5.4.5  狀態列

狀態列位於主框架視窗的底部,主要用來顯示一些提示資訊,可細分為幾個窗格。狀態列一般用於簡要解釋被選中的選單命令、工具欄按鈕命令,以及當前的操作物件的狀態。另外,它還會顯示 scroll lock、num lock、caps lock和insert等鍵盤上特殊按鍵的狀態。

狀態列也是乙個視窗,它有幾個窗格,每個窗格顯示不同的資訊。類嚮導會為應用程式自動建立乙個狀態列,該狀態列包括幾個窗格,分別用來顯示狀態列提示和 caps lock、num lock、scroll lock鍵的狀態。在 mfc中,狀態列的功能由 cstatusbar類實現。

狀態列可以隨時為使用者提供當前程式狀態資訊,它既不接受使用者輸入也不產生命令訊息,它的作用只是在程式控制下在狀態窗格(pane)中顯示一些文本來表示當前程式的狀態。

1.狀態列的設計與實現

狀態列支援兩種型別的文字窗格:狀態指示器窗格和資訊行窗格,如圖5-58所示。

圖5-58  狀態列

為了在應用程式中顯示一些特定的資料,可以禁止標準狀態上原有的訊息行和指示器。按下面的方法可以在標準狀態列基礎上定製需要的狀態列。

首先將滑鼠放在專案工作區「resource view」面板中的根資料夾上單擊右鍵,在彈出選單中選擇「rsource symbols」命令,在彈出的「rsource symbols」對話方塊中單擊「new」按鈕,會彈出如圖5-59所示的「new symbols」對話方塊。輸入新的id標識,並為其指定乙個數值,如果不想使用系統提供的預設值,可以指定其他允許的數值。

圖5-59  新增新資源符號

然後,在「串表」中新增新的字串,字串id為剛才建立的id,字串內容自定。

在indicators陣列中插放新的id標識,插入的順序決定了它出現在狀態列中的位置,陣列下標為0的元素在狀態列最左端,從左向右排列。

2.cstatusbar類

與工具欄相同,狀態列類cstatusbar也是派生於ccontrolbar類,因此具有一些相關類似的特性。cstatusbar類的成員函式如表5-8、表5-9、表5-10所示。

建立乙個狀態列可以按照以下步驟完成。

光碟路徑   /05/pane/

例項目的   給狀態列新增時間窗格

本例項演示程式在執行中會在狀態列顯示系統時間,滑鼠位置及「insert」按鍵是否被按下等狀態。

1.建立工程

在工作區中選擇resource view標籤,轉到資源編輯視窗,雙擊「string table」→「string table」項條目開啟開啟串表資源的編輯器。

選擇最下面的空白項並雙擊,或選擇某個串後按「insert」鍵,將彈出「string properties」對話方塊。在「id」框中輸入串識別符號和值,在「caption」框內輸入標題字元的內容,串值為系統自動設定。要新增的字串如表5-14所示。新增完字串後的介面,如圖5-60所示。

圖5-60  新增完字串

3.新增響應訊息

在ide主選單項中依次選擇「view」→「classwizard」,開啟「mfc classwizard」對話方塊,選擇「member maps」選項卡。

在「project」下拉列表框中選擇「pane」,在「class name」欄中選擇「cmainframe」,在「object ids」欄中選擇「cmainframe」,在messages欄中雙擊「wm_timer」項,則classwizard會彈出乙個對話方塊詢問命令處理函式的名字,使用其提供的函式名即可。單擊「ok」按鈕後,函式ontimer就被加入到了member functions欄中。

利用   的方法再新增另乙個訊息,「class name」欄中選擇「cpaneview」,在「object ids」欄中選擇「cpaneview」,在messages欄中雙擊「wm_mousemove」項,則classwizard會彈出乙個對話方塊詢問命令處理函式的名字,使用其提供的函式名即可。單擊「ok」按鈕後,函式onmousemove就被加入到了member functions欄中。

4.新增成員變數

為類cmainframe新增乙個成員變數,在工作區中選擇class view標籤,轉到類編輯視窗,在類cmainframe上單擊滑鼠右鍵選擇「add member variable」命令,彈出新增成員變數的對話方塊,在variable type文字框中輸入型別為bool,在variable name文字框中輸入變數的名稱為m_bins,訪問控制許可權選擇為protected,如圖5-61所示。

圖5-61  新增變數

單擊「ok」按鈕就可以完成對變數的新增。

5.新增**

圖5-62  程式執行結果

在圖5-62中我們看到,狀態列中新增了系統時間、滑鼠位置及「insert」按鍵是否被按下等狀態。

使用VC 6 0隱藏工作列

使用vc 6.0隱藏工作列 摘要 隱藏工作列本沒有什麼難的,獲取工作列的視窗控制代碼,然後設定它隱藏。但是隱藏之後,工作列陰魂不散,死活也不肯騰出所空間。還好,最後找到了解決辦法。正文 需求是 徹底隱藏工作列,讓工作列騰出空間給視窗。隱藏windows工作列,如下 hwnd hwnd hwnd fi...

vc在狀態列顯示時間

2 在mainfrm.cpp中indicators宣告處新增id indicator clock,如下 static uint indicators 這一步中id indicator clock的插入位置將影響時間窗格在狀態列中的顯示位置。3 安裝定時器 在mainfrm.cpp中oncreate函...

狀態列的基本程式設計

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