狀態列中缺省會顯示按鍵狀態和我們當前選擇的選單、工具條的描述資訊。我們也可以朝狀態列中顯示自己的資訊。本文介紹如何在狀態列中顯示當前滑鼠位置和滑鼠所在位置的顏色。
為了顯示乙個定製訊息,我們需要為程式建立乙個可以關聯更新訊息的元素(字串資源),然後再在狀態列中給它建立對應的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...