C++ 立即调用OnMove(),而不是等待窗口的实际移动

C++ 立即调用OnMove(),而不是等待窗口的实际移动,c++,visual-c++,visual-studio-2013,mfc,C++,Visual C++,Visual Studio 2013,Mfc,我的MFC应用程序有问题 它应该显示窗口的坐标,然后当你移动窗口时,用新坐标显示一条新线。我的问题是OnMove()函数似乎会立即被调用,并且所有内容总是同时显示 这是我的OnPaint()代码: 这是我的爱 void CMainFrame::OnMove(int x, int y) { CFrameWnd::OnMove(x, y); CDC *dc; dc = GetDC(); Invalidate(); dc->TextOutW(0, 80, _T("TEST")); Upd

我的MFC应用程序有问题 它应该显示窗口的坐标,然后当你移动窗口时,用新坐标显示一条新线。我的问题是OnMove()函数似乎会立即被调用,并且所有内容总是同时显示

这是我的OnPaint()代码:

这是我的爱

void CMainFrame::OnMove(int x, int y)

{
CFrameWnd::OnMove(x, y);
CDC *dc;

dc = GetDC();
Invalidate();

dc->TextOutW(0, 80, _T("TEST"));

UpdateWindow();

}

知道为什么在我运行应用程序而不是等待移动时,单词TEST就会出现吗?

因为窗口的初始创建和显示会导致对OnMove()的调用。另一个提示-只需在OnPaint()函数中绘制文本,就可以省去许多麻烦。其他消息处理程序应该捕获数据供OnPaint()以后使用,而不是立即绘制。

这对@MarkTaylor有很大帮助,非常感谢
void CMainFrame::OnMove(int x, int y)

{
CFrameWnd::OnMove(x, y);
CDC *dc;

dc = GetDC();
Invalidate();

dc->TextOutW(0, 80, _T("TEST"));

UpdateWindow();

}