无边框窗体的WM_NCHITTEST消息怎么响应窗口外(阴影处)的拖动改变大小操作?

设想在窗口四周加上四个边框窗口,像 回 字一样的结构。
那怎样把四边窗口的鼠标测试消息传回主窗口
想要实现和Windows窗口一样的拖动改变大小效果,并且能够支持自动排列窗口的效果

1个回答

qq_38701780
高兴死了 窗口内的很简单,但窗口外不知道获取消息 case WM_NCHITTEST: { POINT pt; pt.x = GET_X_LPARAM(lParam); pt.y = GET_Y_LPARAM(lParam); ScreenToClient(hWnd, &pt);//鼠标位置 RECT rect; GetClientRect(hWnd, &rect);//客户区矩形 int x = 3;//边框宽度 if (pt.x < rect.left + x) { if (pt.y < rect.top + x)return HTTOPLEFT;//左上 if (pt.y > rect.bottom - x)return HTBOTTOMLEFT;//左下 return HTLEFT;//左边 } if (pt.x > rect.right - x) { if (pt.y < rect.top + x)return HTTOPRIGHT;//右上 if (pt.y > rect.bottom - x)return HTBOTTOMRIGHT;//右下 return HTRIGHT;//右边 } if (pt.y < rect.top + x)return HTTOP;//上边 if (pt.y > rect.bottom - x)return HTBOTTOM;//下边 return HTCAPTION; }
8 个月之前 回复
qq_38701780
高兴死了 没什么用,我要win32的,要可以响应窗口外的鼠标消息
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问