OnNcHitTest

王朝百科·作者佚名  2010-05-25
窄屏简体版  字體: |||超大  

CWnd::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 在最大化按钮上。

参数: point 包含了光标的x轴和y轴坐标。这些坐标总是用屏幕坐标给出的。

说明:

每当鼠标移动时,框架就为包含光标(或者是用SetCapture成员函数捕获了鼠标输入的CWnd对象)的CWnd对象调用这个成员函数。

注意 框架调用这个成员函数以允许你的应用程序处理一个Windows消息。传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。如果你调用了这个函数的基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。

举例:

比如果应用程序自己绘制的界面没有标题栏,那我们怎么来拖动程序呢?那么就可以添加下面消息:

UINT CMainWindow::OnNcHitTest (CPoint point)

{

UINT nHitTest = CFrameWnd::OnNcHitTest (point);

if (nHitTest == HTCLIENT)//如果是客户区

nHitTest = HTCAPTION; //则把它当成标题栏

return nHitTest;

}

经过上面处理后,如果用户拖动程序的客户区的话,系统会以为你拖动的是栏题栏,从而实现程序拖动

请参阅:CWnd::GetCapture, WM_NCHITTEST

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航