VS2010中單文檔/多文檔程序----狀態欄操作

在狀態欄裏顯示鼠標移動在客戶區移動時的座標位置,具體方法如下:
1、新建一個MFC單文檔應用程序;
2、添加一個新的狀態欄窗格;
在CMainFrame類的實現文件的開始部分,在indicators數據中添加ID_SEPARATOR;
3、在CxxxView類中通過ClassWizard添加鼠標指針移動WM_MOUSEMOVE的消息處理函數OnMouseMove(),並在OnMouseMove()函數中添加代碼完成鼠標指針座標的顯示。
完成鼠標座標指針顯示的方法有3中:
方法一:使用SetWindowText()函數,在OnMouseMove()函數中添加如下代碼:

CSting str;
str.Format("X:%d  Y:%d",point.x,piont.y);
((CMainFram*)GetParent())->m_wndStatusBar.SetWindowText(str);

注:此方法需將CMainFrame中的m_wndStatusBar改爲public類型,而且還要在CxxxView類的執行文件中加入CMainFrame類的頭文件#include“MainFram.h”,這樣雖達到相應的效果,但破壞了CMainFrame的封裝特性,不建議使用。
方法二、使用SetMessageText()函數,在OnMouseMove()函數中添加如下代碼:

CString str;
str.Format("X:%d  Y:%d",point.x,point.y);
((CFrameWnd*)GetParent())->SetMessageText(str);

方法三、使用SetPanelText()函數,在OnMouseMove()函數中添加如下代碼:

CStatus* pStatus;
pStatus=(CStatusBar*)(AfxGetApp()->m_pMainWnd->GetDescendantWindow(AFX_IDW_STATUS_BAR));
pStatus->SetPaneText(1,str);

使用第三種方法可以在狀態欄中任意窗口格上顯示鼠標指針座標,而不會像一、二兩種方法,只能在第一窗格中顯示鼠標指針座標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章