MFC獲取視窗和客戶區座標分析

2021-08-01 01:38:27 字數 620 閱讀 4374

cwnd* pwnd = getdlgitem(idb_but_recognize);

pwnd->getclientrect(&rect);   //指該控制項自身客戶區的矩形,原點為控制項左上角,長寬為整個控制項的尺寸

clienttoscreen(&rect);    // 座標原點從控制項所屬視窗客戶區移動到螢幕左上角,長寬為整個控制項的尺寸,相當於把控制項放在它所屬的客戶區的左上角時,在螢幕座標系中的位置

pwnd->getwindowrect(&rect);   //該控制項相對電腦螢幕的座標,,原點為螢幕左上角,長寬為整個控制項的尺寸

screentoclient(&rect); //移動視窗時未改變,所以是相對位置,從螢幕座標變換到客戶區座標,相當於該控制項到客戶區

getclientrect(&rect);  //整個視窗自身客戶區的座標 ,原點為客戶區左上角,長寬為客戶區的尺寸

clienttoscreen(&rect);   // 座標系從客戶區變換到螢幕, 該視窗客戶區在螢幕座標系中的位置

getwindowrect(&rect);  //整個視窗相對於電腦螢幕的座標,,原點為螢幕左上角,長寬為整個視窗的尺寸

screentoclient(&rect);  //整個視窗在客戶區座標系下的位置

螢幕座標系和視窗客戶區座標

螢幕座標系和視窗客戶區座標系最明顯的區別在於座標原點,螢幕座標系的座標原點在整個螢幕的左上角,而視窗客戶區座標系的座標原點在視窗客戶區的左上角,通常這兩個點是不重合的。一 裝置座標和邏輯座標 裝置座標 device coordinate 又稱為物理座標 physical coordinate 是指輸...

螢幕座標 客戶區域(可視視窗)座標 頁面座標的區分

螢幕座標 可視視窗座標 頁面座標有時不能迅速的對應起來,為了更好的區分三者,特意畫了一張圖如下 顧名思義,即整個電腦螢幕上任意一點的位置座標,對應的屬性分別為screenx,screeny,範圍如上圖最外層紅色邊框範圍,座標為藍色虛線對應的座標。可以使用類似下面的 取得滑鼠事件的螢幕座標 var d...

螢幕座標 客戶區域(可視視窗)座標 頁面座標的區分

螢幕座標 可視視窗座標 頁面座標有時不能迅速的對應起來,為了更好的區分三者,特意畫了一張圖如下 顧名思義,即整個電腦螢幕上任意一點的位置座標,對應的屬性分別為screenx,screeny,範圍如上圖最外層紅色邊框範圍,座標為藍色虛線對應的座標。可以使用類似下面的 取得滑鼠事件的螢幕座標 var d...