我移动窗口时MFC如何更改字体?

时间:2017-10-21 03:11:56

标签: c++ fonts mfc move

基本上,我试图显示输出,然后在移动窗口时更新显示的字体。我试图使用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"));

}

0 个答案:

没有答案