View 里的WM_NCCALCSIZE消息怎么用
时间: 2024-03-26 10:34:39 浏览: 11
WM_NCCALCSIZE消息是在窗口大小发生变化时发送的消息,用于计算非客户区的大小和位置。可以通过重载窗口的WndProc函数来处理该消息。
在处理WM_NCCALCSIZE消息时,需要根据指定的参数来计算非客户区的大小和位置,并将计算结果存储在指定的结构体中。
具体的处理过程如下:
```c++
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_NCCALCSIZE:
{
if (wParam == TRUE)
{
NCCALCSIZE_PARAMS* pNcsp = (NCCALCSIZE_PARAMS*)lParam;
RECT& rcNew = pNcsp->rgrc[0];
// 计算非客户区的大小和位置
// ...
// 将计算结果存储在rcNew中
return 0;
}
break;
}
// 其他消息处理
// ...
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
```
需要注意的是,当wParam为TRUE时,表示计算非客户区的大小和位置;当wParam为FALSE时,表示窗口的大小和位置已经确定,此时可以根据lParam中的RECT参数来设置非客户区的大小和位置。