0
我处理WM_NCCALCSIZE消息,并尝试手动设置dest窗口客户端矩形。如何调整客户端大小?
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;
}
但效果不好, 当我调整窗口的DrawText绘制文本不会被擦除干净。
如何完全清除背景?
“你好程序”:你是怎么用中文写“Hello,world”的? :) - 开玩笑。这里(http://msdn.microsoft.com/en-us/library/windows/desktop/ms632634(v=vs.85).aspx)它说你应该返回'WVR_REDRAW'来重新绘制窗口,我看到你已经注释掉了。为什么? –
@AndyProwl:因为它不起作用。 – Jichao
查看WM_NCCALCSIZE文档(http://msdn.microsoft.com/en-us/library/ms632634(VS.85).aspx),了解各种问题的解释......该消息很少用到,我猜你并不需要它。你究竟想在这里做什么? – HerrJoebob