窗口重绘

Posted Autumn の Box

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了窗口重绘相关的知识,希望对你有一定的参考价值。

Windows程序运行时,如果程序窗口大小发生变化,窗口会发生重绘,窗口中已输入的文字或图像就会被擦除。如果希望输入的内容始终保留在窗口上,就要在响应WM_PAINT消息的函数中将内容再次输出。在MFCAppWizard的视图窗口中提供了类似于WM_PAINT消息响应函数的OnDraw函数,当窗口发生重绘时,应用程序框架代码就会调用该函数。  

  OnDraw函数:

  void CTextView::OnDraw(CDC* pDC)

  {

    CTextDoc* pDoc = GetDocument();

    ASSERT_VALID(pDoc);

    // TODO: add draw code for native data here

  }

  添加字符串资源:

  

  

  例: 

void CTextView::OnDraw(CDC* pDC)
{
    CTextDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    CString str1;
    str1="hello";
    CString str2;
    str2="MFC";
    CString str;
    str=str1+str2;
    pDC->TextOut(100,100,str);

    str.LoadString(IDS_STRING);
    pDC->TextOut(200,200,str);
}

 

以上是关于窗口重绘的主要内容,如果未能解决你的问题,请参考以下文章

SetParent API 创建的 MDI 子重绘问题

WM_PAINT消息在窗口重绘的时候产生,那什么时候窗口会重绘(异步工作方式,效率更高,灵活性更强)

MFC中窗口重绘

单击时重绘可可应用程序的主窗口

如何在窗口中重绘 Qt 窗口或 tabview

等待另一个 Windows 进程重绘其主窗口的可靠方法