WIN32 如何让窗体不能移动

2025-05-06 02:44:38
推荐回答(1个)
回答1:

不可拖动, 可以去掉标题栏,即去掉WS_CAPTION风格
不能改变大小,可以去掉WS_THICKFRAME,即WS_SIZEBOX风格

如果以上方法不能满足你的要求,你还可以处理WM_NCHITTEST消息:
case WM_NCHITTEST:
{
LRESULT res = DefWindowProc(hwnd, uMsg, wParam, lParam);
if (res == HTCAPTION || (res >= HTLEFT && res < HTBORDER))
return HTCLIENT;
}

还可以处理WM_NCLBUTTONDOWN消息:
case WM_NCLBUTTONDOWN:
if (wParam == HTCAPTION || (wParam >= HTLEFT && wParam < HTBORDER))
return 0;

要不能改变大小,最好还是去掉WS_THICKFRAME风格,然后这样处理WM_NCLBUTTONDOWN就行了:

case WM_NCLBUTTONDOWN:
if (wParam == HTCAPTION)
return 0;