在狀態列中顯示滑鼠位置座標
阿新 • • 發佈:2019-02-06
(1)在狀態列資源中新增一個窗格。實現的方法是開啟MainFrm.cpp檔案,找到靜態數
組indicators的定義,在第一個陣列元素ID_SEPARATOR後面增加一個新的陣列元素,即
添加了一個新的窗格,為了表明這個窗格的用途,故命名為
ID_INDICATOR_MOUSE_POS。修改後的程式碼如下:
static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_MOUSE_POS, //滑鼠位置座標值窗格 ID_INDICATOR_CAPS, // 大寫 ID_INDICATOR_NUM, // 數字鍵 ID_INDICATOR_SCRL, // 滾動 };
(2) 在ResourceView的String Table中新增ID_INDICATOR_MOUSE_POS, 在Caption
中輸入“滑鼠的當前座標”。
(3)新增滑鼠移動訊息的響應函式。
編輯其程式碼如下:void CMyTextOutView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CString szCoordinate; //獲得狀態列的指標 CStatusBar* pStatusBar=(CStatusBar*)GetParentFrame()-> GetDescendantWindow(ID_VIEW_STATUS_BAR); szCoordinate.Format("(%4d,%4d)",point.x,point.y); //在狀態列的第二個窗格中輸出當前滑鼠位置 pStatusBar->SetPaneText(1,szCoordinate); //面板編號從0開始 CView::OnMouseMove(nFlags, point); }
(4)執行效果如下: