我想在Dialog上利用textout方法显示文本信息在某一位置上,请问怎么实现?   谢谢大家,明早散分

解决方案 »

  1.   

    用 ClassWizard 添加 WM_PAINT, 在 OnPaint 中输出。
    窗体显示已经改变需要重画的部分为无效区域。
      

  2.   

    void CTestDlg::OnPaint()
    {
    ...CClientDC dc(this);
    char str[] = "Text Out";
    dc.TextOut(10,10, str, strlen(str));
    ...
    }
      

  3.   

    对于有效区域和无效区域还是不太明白,能说的详细一点吗?
    在什么时候需要调用Invalidate()这个函数?
      

  4.   

    例如,使用者可能会在屏幕上移动另一个程序的窗口,这样就可能覆盖您的应用程序窗口的一部分。Windows不会保存您的窗口中被其它程序覆盖的区域(这部分区域就是无效区域),当程序移开后,Windows通过发送WM_PAINT消息通知窗口消息处理程序,窗口的部分显示区域需要绘制。以上是windows自动做的,你也可以使用Invalidate等函数手动发送WM_PAINT消息强制刷新