【发布时间】:2011-10-12 10:37:36
【问题描述】:
我非常渴望解决这个非常烦人的问题:( 我正在尝试在父窗口上显示一个子窗口。有时需要调整窗口大小。但是由于某种原因,当我使用 MoveWindow 函数时,它会在父窗口的顶部留下空白。我想在这里展示一张图片,但我不能发布图片。
下面是代码示例:
HWND hwnd // Comes from external function. Was defined as WS_CHILD previously
HWND hwndParent = ::GetParent(hwnd);
RECT parentRect = {0,0,0,0};
RECT childRect = {0,0,0,0};
::GetClientRect(hwndParent, &parentRect); // Suppose it returns {0,0,600,300}
BOOL ok = ::MoveWindow(hwnd, 0, 0, 600, 300, true);
::GetClientRect(hwnd, &childRect); // Will return {0,0,584,297}
为什么?????
我做错了什么?我是否忘记了一些窗口初始化标志?!
【问题讨论】:
-
您是否应该使用 getwindowrect 来代替客户区?
-
@Iron-Eagle:当父窗口收到WM_PAINT消息时,你是否正确重绘父窗口?
-
我对你所说的“//假设它返回......”的部分持怀疑态度。为什么要假设什么?
-
Alex K: - 它到底有什么帮助?亚历克斯 - 是的,重绘正在工作。 tenfour - 我的意思是我给 ::MoveWindow 的数字与我从 ::GetClientRect 得到的数字相同。数字本身并不重要。
标签: c++ windows winapi user-interface mfc