vc 中獲取滑鼠的座標值於狀態列中的四種方法

2021-05-22 01:48:14 字數 1692 閱讀 6751

由於view類視窗始終都是在框架類之上,所以我們在捕獲滑鼠移動的時候應該在view類中操作。首先在view類中增加wm_mousemove訊息的響應然後有以下方法獲得:

(1)cstring str;

str.format("x=%d,y=%d",point.x,point.y);
((cmainframe*) getparent_r())->m_wndstatusbar.setwindowtext(str);//獲得父視窗的指標,然後獲得狀態列m_wndstatusbar(一般都是在框架視窗定義的),呼叫setwindowtext()函式
//((cmainframe*) getparentowner_r())->m_wndstatusbar.setwindowtext(str);
(2)
cstring str;
str.format("x=%d,y=%d",point.x,point.y);
((cmainframe*) getparent_r())->setmessa getext_r(str);
應用setmessagetext方法:
cframewnd::setmessagetext
void setmessa getext_r( lpctstr lpsztext );
void setmessa getext_r( uint nid );
這個函式直接放置字串到狀態列。
(3)
cstring str;
str.format("x=%d,y=%d",point.x,point.y);
((cmainframe*) getparent_r())-> getmessagebar_r()->setwindowtext(str);
應用 getmessagebar_r()函式:
cframewnd::getmessagebar
virtual cwnd* getmessagebar_r( );
直接獲得狀態列的指標,不需要呼叫mainframe中定義的成員函式了。
(4)
cstring str;
str.format("x=%d,y=%d",point.x,point.y);
getparent_r()-> getdescendantwindow_r(afx_idw_status_bar)->setwindowtext(str);
函式getdescendantwindow():
cwnd::getdescendantwindow
cwnd* getdescendantwindow_r( int nid, bool bonlyperm = false ) const;
呼叫此函式,根據給定的子孫視窗的狀態列的id號,這個id號在我們建立狀態列的時候已經預設給定了:cstatusbar::create
bool create( cwnd* pparentwnd, dword dwstyle = ws_child | ws_visible | cbrs_bottom, uint nid = afx_idw_status_bar );
然後和前邊一樣呼叫setwindowtext();

ribbon介面狀態列顯示滑鼠座標

實現功能 在ribbon介面下,開啟影象,滑鼠在影象上移動時,狀態列上實時顯示滑鼠所在位置的座標。方法 在mainframe類中新增如下函式 void cmainframe updatestatusbar int nid,cstring str m wndstatusbar.invalidate m...

獲取網頁中滑鼠的座標

主要是兩段 把這兩段 加入你儲存後的頁面檔案中就可以了,加入方法如下 1.在 標記之前插入如下一段 如插入後的示例如下 2.在標記中加入如下一段 nm usem ve statusreport 加入後的示例如下 3.儲存檔案 用ie瀏覽器開啟修改過的頁面後,在頁面中移動滑鼠,滑鼠所在位置的x,y座標...

VC 中狀態列上新增座標顯示功能

本程式是基於 vc6.0mfc sdi 寫。cmainframe 中 1.新增窗格 先在 string table 裡面先定義 id indicator point 然後將其到狀態列各窗格標誌的陣列 indicators 中 static uint indicators 2.在oncreate 中,...