feo*_*eos 0 c c++ winapi resize
我需要禁用除 之外的所有调整大小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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |