1. 程式人生 > >MFC獲取視窗和客戶區座標分析

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

CWnd* pWnd = GetDlgItem(IDB_BUT_RECOGNIZE);

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

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

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

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

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

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

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

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

相關推薦

MFC獲取視窗客戶座標分析

CWnd* pWnd = GetDlgItem(IDB_BUT_RECOGNIZE); pWnd->GetClientRect(&rect);   //指該控制元件自身客戶區的矩形,原點為控制元件左上角,長寬為整個控制元件的尺寸 ClientToScreen(

邏輯座標與裝置座標——全視窗座標、螢幕座標客戶座標的總結

Windows應用程式繪製圖形時使用的是一種邏輯單位,每個邏輯單位的大小由對映模式決定,這個邏輯單位既可以與裝置單位(螢幕或印表機上的一個畫素點)相同,也可以是一種物理單位(如毫米),還可以是使用者自定義的一種單位。在Windows應用程式中,只要與輸出有關係,都要使用對映

MFC 中實現在客戶拖動來拖動視窗的方法總結

VC++實現無標題欄對話方塊的拖動 其實說白了就是欺騙,欺騙誰了?呵呵,當然是欺騙windows,本來是移動標題欄可以拖動窗體,那麼我們現在是拖動客戶區來移動,當我們拖動標題欄的時候windows產生一個WM_NCHITTEST訊息,這個訊息確定滑鼠點選的哪個位置,這個訊息

Lesson 4: 視窗大小客戶大小

當我們呼叫CreateWindowEx()函式時,我們使用了500*400來設定視窗的大小。然而,這和客戶區的大小是不一樣的。客戶區為視窗的一部分,遊戲軟體通常都在客戶區完成遊戲中的各種畫面、功能與效果的實現。 當使用Direct3D時,我們需要確定圖

MFC獲取視窗可視狀態的兩種API方法

嚴以律己,寬以待人. 三思而後行. GMail/GTalk: yanglinbo#google.com; MSN/Email: tx7do#yahoo.com.cn; QQ: 3 0 3 3 9 6 9 2 0 .

VC----SDK下對視窗客戶的操作

視窗分成兩大部分:客戶區和非客戶區。非客戶區再次細分:標題欄,如圖片中頂部深藍色;左邊框,如圖片中紅色部分;上邊框,如圖片中綠色部分;右邊框,如圖片中右側天藍色部分;底邊框,如圖片中下面棕色部分。 之所以要有這樣的區分,是因為,我在用函式SystemParametersI

客戶座標與成螢幕座標的相互轉換

客戶區座標轉換成螢幕座標   CPoint pt;   pt=point;//假設point為客戶區座標 ClientToScreen(pt); 此後pt表示的就是螢幕座標 螢幕座標轉換成客戶區

[轉載]MFC視窗視窗(SetParent,SetOwner)

一、概念和區別 在windows系統中,每個視窗物件都對應有一個數據結構,形成一個list連結串列。系統的視窗管理器通過這個list來獲取視窗資訊和管理每個視窗。這個資料結構中有四個資料用來構建list,即child、sibling、parent、owner四個域。所以我們可以看到,視窗之間的關係有兩種:ow

視窗客戶的繪製

7.最後要響應WM_NCMOUSEMOVE,WM_NCLBUTTONDOWN,WM_NCLBUTTONUP, WM_NCMOUSELEAVE,來處理Titlebar上的滑鼠動作.另外最好呼叫SetWindowTheme(hWnd, L"", L""),和DWORD dwAttr = 1;DwmSetWindo

MFC獲取視窗控制代碼的方法

AfxGetMainWnd AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回

MFC 獲取檔案資料夾的路徑

1.獲取檔案的路徑 CFileDialog fileDlg(TRUE); fileDlg.m_ofn.lpstrTitle=L"開啟檔案"; //fileDlg.m_ofn.lpstrFilter

MFC中客戶區客戶的區別&OnPaintOnDrawn的區別

1.客戶區和非客戶區的區別: 在一個MDI(多文件)應用程式中每個概念如下圖所示:   視窗框架客戶區即藍色方框內區域,視窗框架非客戶區指藍色方框之外的視窗區域,包括程式圖示、標題欄、選單欄、最大\最小\關閉按鈕,左右邊框和底下的狀態條。 檢視的客戶區指圖中綠色部

獲得客戶的邊界獲得視窗的邊界

BOOL WINAPI GetClientRect(   _In_  HWND   hWnd,   _Out_ LPRECT lpRect ); BOOL WINAPI GetWindowRect(

MFC修改視窗客戶顏色

思路:響應WM_PAINT訊息,純色繪製客戶區 程式碼:在OnPaint中新增如下程式碼 CPaintDC dc(this); // device context for painting CRe

MFC客戶拖動視窗實現

思路: 總共分2步 1 在OnLButtonDown中記住滑鼠點選的位置2 在OnMouseMove中處理視窗移動 程式碼: void CLoginDlg::OnLButtonDown(UINT nF

C# 獲取控制元件在客戶座標,相對於頂級父容器的座標

/// <summary> /// 獲取控制元件在客戶區的座標,相對於頂級父容器的座標 /// </summary> /// <param name="c">

滑鼠事件座標獲取(視窗座標螢幕座標)

本文主要介紹重寫自帶的一些方法,拾取螢幕和視窗座標資訊 效果如下: 分析: 定時服務:在固定一段時間後執行相關的函式方法,例如這裡表示的是在0秒後執行self.giveHelp這個方法 QTimer.singleShot(0, s

MFC視窗控制代碼控制元件控制代碼的獲取

1. 程式主視窗控制代碼的獲得     CWnd* p = AfxGetMainWnd();//函式AfxGetMainWnd()獲得主對話方塊的指標p     HWND h = p->m_hW

Java獲取服務器IP客戶端IP

audio sta ignorecas als style param servlet controls cal 服務器IP: String addr = InetAddress.getLocalHost().getHostAddress(); 說明:很明顯上面

獲取網頁瀏覽器視窗的寬度高度

情況一: // 獲取瀏覽器視窗可視區域的寬度 不包含滾動條 var width=document.body.clientWidth; // 獲取網頁內容的實際高度 var height=document.body.clientHeight; console.log(width,height