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