我需要通过 WMSZ_BOTTOM
禁用所有调整大小,包括禁用相应的鼠标图标。
处理 WM_GETMINMAXINFO
没有帮助,因为它是在调整窗口矩形之前调用的(在 WM_CREATE
内),所以我没有任何设置。我试图复制当前矩形并将其设置为 WM_SIZING
到 lParam
中,但是没有完美的点何时为该拷贝调用 GetWindowRect()
,因为有时当我移动我的窗口然后通过拖动意外的边来调整它的大小时,它会跳到以前的位置(旧的矩形被恢复)。这些看起来像是黑客而不是一些聪明的方法。
当鼠标悬停在除底部以外的窗口边框上时,如何禁用调整鼠标图标的大小?
最佳答案
@manuell 的替代方法不需要您自己检查鼠标位置:
case WM_NCHITTEST:
{
LRESULT lRes = DefWindowProc(hWnd, uMsg, wParam, lParam);
if (lRes == HTBOTTOMLEFT || lRes == HTBOTTOMRIGHT
|| lRes == HTTOPLEFT || lRes == HTTOPRIGHT || lRes == HTTOP
|| lRes == HTLEFT || lRes == HTRIGHT || lRes == HTSIZE)
lRes = HTBORDER; // block resizing for all but HTBOTTOM
return lRes;
}
关于c++ - 限制 WINAPI 中的调整大小方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910986/