//這個函數允許我們對 windows滑鼠消息進行處理 對于基類函數的傳回值 我們可以通過判斷消息類型來進行不同的處理
//也就是說 我們可以對滑鼠消息做任意處理 比如 是菜單欄上的消息 我們可以傳回标題欄的值
//對應的消息類型有如下 查找MSDN此函數的 值有介紹
UINT CMyDlg::OnNcHitTest(CPoint point)
{
UINT nFlags= CDialog::OnNcHitTest(point); //調用基類的OnNcHitTest獲得傳回值
if(nFlags==HTCAPTION||nFlags==HTSYSMENU) //如果滑鼠消息是在 标題欄上或者系統菜單欄 我們就傳回FALSE 不進行處理
{
return FALSE ;
}
else if(nFlags==HTCLIENT) //可以通過客戶區域移動窗體但是不能通過标題欄移動
return HTCAPTION ;
else
return nFlags;
}
下面是一些測試枚舉值
::OnNcHitTest
afx_msg UINT OnNcHitTest( CPoint point );
傳回值:下面列出的滑鼠擊中測試枚舉值之一。
· HTBORDER 在不具有可變大小邊框的視窗的邊框上。
· HTBOTTOM 在視窗的水準邊框的底部。
· HTBOTTOMLEFT 在視窗邊框的左下角。
· HTBOTTOMRIGHT 在視窗邊框的右下角。
· HTCAPTION 在标題條中。
· HTCLIENT 在客戶區中。
· HTERROR 在螢幕背景或視窗之間的分隔線上(與HTNOWHERE相同,除了Windows的DefWndProc函數産生一個系統響聲以指明錯誤)。
· HTGROWBOX 在尺寸框中。
· HTHSCROLL 在水準滾動條上。
· HTLEFT 在視窗的左邊框上。
· HTMAXBUTTON 在最大化按鈕上。
· HTMENU 在菜單區域。
· HTMINBUTTON 在最小化按鈕上。
· HTNOWHERE 在螢幕背景或視窗之間的分隔線上。
· HTREDUCE 在最小化按鈕上。
· HTRIGHT 在視窗的右邊框上。
· HTSIZE 在尺寸框中。(與HTGROWBOX相同)
· HTSYSMENU 在控制菜單或子視窗的關閉按鈕上。
· HTTOP 在視窗水準邊框的上方。
· HTTOPLEFT 在視窗邊框的左上角。
· HTTOPRIGHT 在視窗邊框的右上角。
· HTTRANSPARENT 在一個被其它視窗覆寫的視窗中。
· HTVSCROLL 在垂直滾動條中。
· HTZOOM 在最大化按鈕上。