case WM_PAINT:
hdc = BeginPaint(hDlg, &ps);
// TODO: Add any drawing code here...
RECT rt;
GetClientRect(hDlg, &rt);
COLORREF crBkColor = ::GetSysColor(COLOR_3DFACE);
DrawText(hdc, "hello ", 5, &rt, DT_CENTER);
EndPaint(hDlg, &ps);
break;
我想在dlg(对话框上写个"hello"字符串,可是却有个矩形的白色背景,我现在想只写个字符串而不要背景,DrawText还不能画到任意位置,请教如何实现?

解决方案 »

  1.   

    case WM_PAINT:
    不能写在这里。
    case WM_CREATE 就可以!
      

  2.   

    字体的背景色可以设置的。具体查查MSDN吧。
      

  3.   

    CDC* pDC=GetDC();
    pDC->SetTextBKColor(RGB(212,208,200));可以将文字背景改为对话框的颜色
      

  4.   

    谢谢0sch(天哪) 
    我用的sdk不能用CDC类啊 怎么把他设成背景色为原来的颜色?
      

  5.   

    http://expert.csdn.net/Expert/topic/2358/2358992.xml?temp=.9543726
      

  6.   

    用API函数
    SetBkMode(hdc, TRANSPARENT);
      

  7.   

    在OnPaint()中添加:
    int nMode = pDC->SetBkMode(TRANSPARENT);
    pDC->TextOut(0,0,"Hello");
    pDC->SetBkMode(nMode);
      

  8.   

    to wangjs720(听雨舟) ::
    我用的sdk不能用CDC类啊 怎么把他设成背景色为原来的颜色?to chemo(林小枫
    SetBkMode(hdc, TRANSPARENT);
    这个我试过,不行