小弟用以下的代码在IDC_STATIC1上输出文本
CWnd* pWnd = GetDlgItem(IDC_STATIC1);
CDC* pControlDC = pWnd->GetDC ();
pControlDC->TextOut(0,i,Text);
可是对话框被覆盖,或是移动,都会抹掉文本
请问有什么方法能留住文本呢?
谢谢了```先

解决方案 »

  1.   

    继承 CStatic
    然后重载 DrawItem()
    在DrawItem() 里写TextOut(0,i,Text);
      

  2.   

    再写一次,在OnTimer里设置,不停的重写可你为什么要这样在static上写文本呢?
    直接接CWnd* pWnd = GetDlgItem(IDC_STATIC1);
         pWnd->SetWindowText(text);不行吗?
      

  3.   

    对啊,为什么不用SetWindowText()呢
      

  4.   

    那样好像只是简单的画了上去,用SetWindowText()吧
      

  5.   

    1、最简便的方法
         CWnd* pWnd = GetDlgItem(IDC_STATIC1);
         pWnd->SetWindowText(text);
    2、重载CStatic,在他的OnPaint函数中用TextOut()函数来输出文本
         这样就不会在对话框最小化或其他窗体覆盖他的时候擦去文本了!
      

  6.   

    其实如果你熟悉控件的思路的话,你所要了解的动态数据交换的内容,不用费力去理解窗口的概念。在界面设计窗口中按下Ctrl+W打开ClassWizad,第二个选项卡就是设置动态数据交换,学学怎么用它吧。找本MFC的入门书,会找到答案。
    具体控件的应用可查阅有关msdn的内容。如用CListBox的InsertString()可向一个CListBox控件中插入字符串。