PtInRect

包含兩個版本:一個是MFC的C++版本、另一個是Windows API版本

基本概念

包含兩個版本:一個是MFC的C++版本、另一個是Windows API版本

1、MFC:

類CRect的成員函式,其作用是判斷一個點是否在CRect中。

函式的原型如下:

2、Windows API:

函式的原型為:

套用舉例

在自繪視窗時,沒有標題欄,此只點擊客戶區的頂端部分,也認為是標題欄 ,從來可以實現視窗的拖動。

LRESULT CClientDlg::OnNcHitTest(CPoint point)

{

// TODO: Add your message handler code here and/or call default

CRect rc;

GetClientRect(&rc); //客戶區。

CRect rcArea; //客戶區的頂部。

int iWidth = rc.Width()/2;

int iHeight=30;

rcArea.left = rc.Width()/2 -iWidth; //1-x

rcArea.top = rc.top; //1-y

rcArea.right = rc.Width()/2 +iWidth; //2-x

rcArea.bottom = rc.top + iHeight; //2-y

/* rcArea 示意圖

left,top------------

| |

| |

-------------right,bottom

left,top是原點。

Rect示意圖 Rect示意圖

*/

ClientToScreen(&rcArea);

UINT utemp = rcArea. PtInRect(point) ? HTCAPTION : CDialog::OnNcHitTest(point); //判斷此點是否在上述矩形區域內。

return rcArea.PtInRect(point) ? HTCAPTION : CDialog::OnNcHitTest(point);

}

相關詞條

相關搜尋

熱門詞條

聯絡我們