gpt4 book ai didi

c++ - 如何调整客户端大小?

转载 作者:行者123 更新时间:2023-11-28 03:25:24 24 4
gpt4 key购买 nike

我处理了 WM_NCCALCSIZE 消息,并尝试手动设置目标窗口客户端 rect。

case WM_NCCALCSIZE: 
{
RECT *rect = (LPRECT)lParam;
if (wParam == TRUE)
{
////缩小客户区的范围
//RECT *rect = (LPRECT)lParam;
//rect->left += 8;
//rect->right -= 8;
//rect->top += 30;
//rect->bottom = 8;
InflateRect(rect, -50, -50);
RECT dstRect = *(LPRECT)lParam;
RECT srcRect = rect[1];
rect[1] = dstRect;
rect[2] = srcRect;

//DefWindowProc(hWnd, message, wParam, lParam);
return 0;
//return WVR_REDRAW;
}
else
{
DWORD lRet = DefWindowProc(hWnd, message, wParam, lParam);
return lRet;
}

但是结果不好,enter image description here当我调整窗口大小时,用 DrawText 绘制的文本没有被彻底删除。

如何完全删除背景?

最佳答案

这里的根本原因是如果你改变了客户区的大小,你就改变了非客户区的大小。但是 WM_ERASEBKGND 处理程序只删除客户区背景,而不是非客户区大小。

因此,如果您更改了客户区大小,您还需要处理 WM_NCPAINT 以删除非客户区背景并使用 DefWindowProc 绘制框架。

关于c++ - 如何调整客户端大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com