正在尝试移动一个自定义按钮,其基类是cwnd,我们使用moveWindow()方法,但是每次我移动窗口时,先前绘制的窗口仍然可见。我试图致电InvalidateWindow,与父窗口上的UpdateWindow一起使用Invalidaterect,但所有这些都无法正常工作。我还尝试了Redrawwindow什么都没有发生。如何使用按钮的新位置正确更新父窗口?这是我的示例代码
void CCalendarCtrl::Shift()
{
RECT rc;
m_Up.GetWindowRect(&rc);
rc.top -= 20;
rc.bottom -=20;
m_Up.MoveWindow(&rc,TRUE);
RedrawWindow();
}
moveWindow()。
https://social.msdn.microsoft.com/forums/forums/en-us/d6da8041-741-747c-4b31-b493-343e4516b4516b452/-mfc-and-cwndmovewindow-mfc?论坛= vcmfcatl
getWindowRect返回屏幕坐标。MoveWindow使用客户端坐标工作。因此,您需要在两个呼叫之间进行屏幕固定器(& rc)。