以下是一个简单的示例代码,演示如何在 OnNcMouseMove 中处理非客户区的鼠标移动事件:
void CMyFrameWndEx::OnNcMouseMove(UINT nHitTest, CPoint point)
{
// 调用基类实现
CFrameWndEx::OnNcMouseMove(nHitTest, point);
// 在这里添加您的处理逻辑
HandleNcMouseMove(nHitTest, point);
}
void CMyFrameWndEx::HandleNcMouseMove(UINT nHitTest, CPoint point)
{
// 在这里可以处理非客户区鼠标移动的逻辑
// 根据 nHitTest 判断鼠标位于窗口的哪个区域
if (nHitTest == HTCAPTION)
{
// 在标题栏上移动,可以添加相应的处理逻辑
CString strMessage;
strMessage.Format(_T("Mouse moved over the caption at (%d, %d)"), point.x, point.y);
AfxMessageBox(strMessage);
}
else if (nHitTest == HTBORDER)
{
// 在边框上移动,可以添加相应的处理逻辑
}
// 其他命中测试值的处理...
// 在这里可以执行其他鼠标移动的处理逻辑
}
在上述示例中,OnNcMouseMove 方法被重写,可以在这里添加自定义的非客户区鼠标移动事件的逻辑。nHitTest 参数指示鼠标在窗口的哪个区域,可以根据这个值来判断需要执行的操作。在 HandleNcMouseMove 方法中,根据具体的 nHitTest 值,可以执行不同的处理逻辑,例如在标题栏上显示消息框,或者在边框上进行其他处理。
请注意,实际的处理逻辑会根据您的应用程序的需求而有所不同。这个方法通常用于自定义非客户区的交互和外观。
转载请注明出处:http://www.zyzy.cn/article/detail/17995/MFC/CFrameWndEx