CDC *pDC=GetDC();
    CDC *myDC=new CDC;
    myDC->CreateCompatibleDC(pDC);
    CFont myFont;
    myFont.CreatePointFont(500,"隶书");
    CFont *OldFont=myDC->SelectObject(&myFont);
    myDC->TextOut(0,0,"社会主义好!");
    myDC->SelectObject(OldFont);    pDC->BitBlt(0,0,100,50,myDC,0,0,SRCCOPY);
这样做是不是应该在客户区输出文字了,可是没有看到效果,为什么呢?

解决方案 »

  1.   

    CDC *myDC=GetDC();
        CFont myFont;
        myFont.CreatePointFont(500,"隶书");
        CFont *OldFont=myDC->SelectObject(&myFont);
        myDC->TextOut(0,0,"社会主义好!");
        myDC->SelectObject(OldFont);
      

  2.   

    你好,我是想先在内存中写好了然后再用Bitblt刷出去,我不想直接这样写,其实我是想在内存中写完,然后一方面输出到DC,另一方面将这块内存另存为一个BMP图像文件。
      

  3.   

    你得给他选一幅位图:
    HDC hDC ; 
    hDC = ::GetDC(NULL); 
    if(m_hSourceBitmap!=NULL)
    {
    DeleteObject(m_hSourceBitmap);
    m_hSourceBitmap=NULL;
    }
        m_hSourceBitmap = CreateDIBSection( hDC,(LPBITMAPINFO)m_pcImage, 0,&m_ppvBits,NULL, 0 );
    if(m_hSourceBitmap==NULL)
    {
    MessageBox("分配内存失败","警告信息");
    return false;
    }
    ::ReleaseDC( NULL,hDC );
    m_pOldBitmap=(HBITMAP *)m_pMemDC->SelectObject(m_hSourceBitmap);
    HBITMAP m_hSourceBitmap,*m_pOldBitmap;//内存位图
    这一段有内存漏,要改改.
      

  4.   

    不选位图,你让pDC往哪儿画呀?