CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC_TEXT);
ASSERT(pStatic);
pStatic->MoveWindow(0,0,200,200,TRUE);
CDC* pCdc = pStatic->GetDC();            
HBITMAP hbitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1) ); CDC dcMem;
dcMem.CreateCompatibleDC(pCdc);               
dcMem.SetTextColor(RGB(0, 255, 0));            
dcMem.SelectObject(hbitmap);         int nHeight = dcMem.DrawText( _T("dadasdasdsa"), &CRect(0,0,240,268),DT_WORDBREAK|DT_EDITCONTROL);
if (!nHeight)
{
TRACE(_T("Error Code:%d\n"),GetLastError() );
} pStatic->ModifyStyle(0,SS_BITMAP);
pStatic->SetBitmap(hbitmap);    有图片无文字,nHeight 不为0,请教。。

解决方案 »

  1.   

    你这个bitmap本来就没画上文字
      

  2.   

     HBITMAP hbitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1) );    CDC dcMem;
        dcMem.CreateCompatibleDC(pCdc);               
        dcMem.SetTextColor(RGB(0, 255, 0));            
        HBITMAP old = (HBITMAP)dcMem.SelectObject(hbitmap);
             int nHeight = dcMem.DrawText( _T("dadasdasdsa"), &CRect(0,0,240,268),DT_WORDBREAK|DT_EDITCONTROL);
        if (!nHeight)   hBitmap = (HBITMAP)dcMem.SelectObject(old);    {
            TRACE(_T("Error Code:%d\n"),GetLastError() );
        }    pStatic->ModifyStyle(0,SS_BITMAP);
        pStatic->SetBitmap(hbitmap);    
    试试
      

  3.   

    把你绘图的代码放到OnPaint函数中去做~
      

  4.   

    dcMem.DrawText确定是画上文字了吗?
      

  5.   

    另外我那个代码的位置放错了,哈哈应该是下面这样的
     hBitmap = (HBITMAP)dcMem.SelectObject(old); 
      if(!Height)
     {
      TRACE(_T("Error Code:%d\n"),GetLastError() );
      }  pStatic->ModifyStyle(0,SS_BITMAP);
      pStatic->SetBitmap(hbitmap); 
    不知道楼主是不是直接复制的呢
      

  6.   

    背景都没了,我把代码放在if (IsIconic())的else子句里
      

  7.   

    影响很大,换位置导致Height为0时才执行哈
      

  8.   

    CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC_TEXT);
        ASSERT(pStatic);
        pStatic->MoveWindow(0,0,200,200,TRUE);
        CDC* pCdc = pStatic->GetDC();            
        HBITMAP hbitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1) );    CDC dcMem;
        dcMem.CreateCompatibleDC(pCdc);               
        dcMem.SetTextColor(RGB(0, 255, 0));            
        dcMem.SelectObject(hbitmap);         int nHeight = dcMem.DrawText( _T("dadasdasdsa"), &CRect(0,0,240,268),DT_WORDBREAK|DT_EDITCONTROL);
        if (!nHeight)
        {
            TRACE(_T("Error Code:%d\n"),GetLastError() );
        }
        
        pStatic->ModifyStyle(0,SS_BITMAP);
        pStatic->SetBitmap((BITMAP)dcMem.SelectObject(hBitmap));