在狀態列顯示資訊

2021-04-16 04:41:28 字數 1480 閱讀 3810

狀態列中缺省會顯示按鍵狀態和我們當前選擇的選單、工具條的描述資訊。我們也可以朝狀態列中顯示自己的資訊。本文介紹如何在狀態列中顯示當前滑鼠位置和滑鼠所在位置的顏色。

為了顯示乙個定製訊息,我們需要為程式建立乙個可以關聯更新訊息的元素(字串資源),然後再在狀態列中給它建立對應的pane,最後,通過wm_update_command_ui修改資訊。具體步驟如下:

1. 建立兩個字串資源,分別給予ids_location, ids_color作為其id,兩個字串資源分別設定初始值0 x 0和(0,0,0)作為位置和顏色的初始值。

2. 在檢視類中定義兩個cstring物件,用於記錄位置和顏色資訊

cstring g_szlocation 

=_t(

"0x0");

cstring g_szcolor 

=_t(

"(0,0,0");

3. 在檢視類中增加wm_mousemove訊息的處理

void

cmyview::onmousemove(uint nflags, cpoint point) 

extern

cstring g_szlocation;

extern

cstring g_szcolor ;

5. 在cmainframe實現檔案中修改indicators陣列的定義,把ids_location ,ids_color加入其中

static

uint indicators 

=m_wndstatusbar.setpaneinfo (

4, ids_location, sbps_normal ,

120);

m_wndstatusbar.setpaneinfo (

5, ids_color, sbps_normal ,

120);

其中4,5分別是ids_location, ids_color在indicators陣列中的下標。

7. 在cmainframe類中新增兩個wm_update_command_ui訊息的處理函式

void

cmainframe::onupdatelocation(ccmdui 

*pcmd)

void

cmainframe::onupdatecolor(ccmdui 

*pcmd)

begin_message_map(cmainframe, cframewnd)

//}afx_msg_map

on_update_command_ui(ids_location,onupdatelocation)

on_update_command_ui(ids_color,onupdatecolor)

end_message_map()

這樣,當滑鼠移動後,g_szlocation, g_szcolor就會被更新,進而觸發了對ids_color, ids_location的wm_update_command_ui的訊息,從而位置和顏色就被顯示了。

在狀態列顯示時間

單文件 在導向程式的第四步中選中 initial status bar resourceview stringtable 中新增乙個新的字串ids clock caption 0000 00 00 00 00 00 static uint indicators 在cmainframe 類 wm cr...

vc在狀態列顯示時間

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

在MFC狀態列顯示時間

在vc的控制項中有個status bar可以在窗體狀態列中新增日期和時間。其實通 過簡單的 你就能建立乙個有時鐘顯示的狀態列,並且還能設定時鐘欄的顯 示方式。舉例如下 然後,編寫 1 在string table中新增new string,在此定義為id indicator clock,將 其capt...