我用drawtext在画面上的一个rect上写了一行字,现在想还在这个rect上把上次的字体替换掉,要如何实现呢?两次的字体设置是不一样的。我想要的效果最好能把第一次的字体都去掉只显示第二次的字体。

解决方案 »

  1.   

    能不能说的详细一些啊!我刚接触MFC
      

  2.   

    dc.SetROP2(R2_XORPEN);
    CRect rect(m_OriginPoint,m_EndPoint); //用对话框背景色覆盖原矩形,这样就只有一个矩形存在
    dc.DrawFocusRect(&rect);
      

  3.   

    呃。。在论坛和google上搜一下双缓冲吧。很多帖子的呢
      

  4.   

    BOOL InvalidateRect(
      HWND hWnd,           // handle to window
      CONST RECT* lpRect,  // rectangle coordinates
      BOOL bErase          // erase state
    );
    bErase = TRUE时,搽除lpRect区域
      

  5.   

    1.Invalidate();
    2.DrawText();关于字体,创建一个CFont对象选进设备再画就行了。
    LOGFONT lf;
    ZeroMemory(&lf, sizeof(LOGFONT));  
    lf.lfHeight = 12;
    lstrcpy(lf.lfFaceName, "宋体");      
    CFont fnHeader;
    VERIFY(fnHeader.CreateFontIndirect(&lf)); 
    CFont *pOldFont = dc.SelectObject(&fnHeader);
    dc.SetTextColor(COLOR_WHITE);
    dc.SetBkMode(TRANSPARENT);
    dc.TextOut(rect.left + TEXT_MARGIN_X,rect.top + TEXT_MARGIN_Y,szText);
      

  6.   

    问题解决,用3楼的思想我换了下api,可以给分了