基本上,我试图显示输出,然后在移动窗口时更新显示的字体。我试图使用onMove()方法来确定窗口是否被移动。但是,我的问题是以某种方式,当我的程序初始化时,它立即调用onMove()方法。它甚至不等待窗口移动。因此,在移动窗口之前已经更改了字体。我想要做的是,在移动窗口后更改显示的字体。老实说,我不知道在窗口初始化之后是否有办法调用onMove()。无论如何,我的程序将调用onMove()。我认为这不是我的解决方案。有没有人有任何其他想法我怎么能实现这一点?下面是我要做的事情的示例执行,当我运行程序时,测试输出已经显示新的字体和颜色。移动窗口后我想这样做。
void CMainFrame::OnMove()
{
CFrameWnd::OnMove(x, y);
CDC *dc;
dc = GetDC();
CRect rect;
dc->SetTextColor(RGB(255, 128, 0));
CBrush brush;
CFont oFont;
oFont.CreateFont(25, 0, 0, 0, 400, false, false,
0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH | FF_SWISS, _T("Times New Roman"));
dc->SetBkMode(TRANSPARENT);
dc->SelectObject(oFont);
dc->FillRect(&rect, &brush);
Invalidate();
UpdateWindow();
dc->TextOutW(0, 200, _T("TESTTTT"));
}