HDC dc;
   bmp HBITMAP;  dc = CreateCompatibleDC(Canvas.Handle);
  bmp=CreateCompatibleBitmap(dc,100,100);//add
  SelectObject(dc,bmp);//add
  TextOut(dc,0,0,"as",strlen("as"));
  BitBlt(GetDC(0), 0, 0, 300,800,dc, 0, 0, SRCCOPY);
  
  DeleteDC(a);
  DeleteObject(b);//add
为什么用内存DC画出来的图的背景是黑的呢?
请尽量用API来回答这个问题,不要用MFC,因为我是个Delphi用户,在Delphi版没人解决这个问题,只能到这里来提问了。谢谢!

解决方案 »

  1.   

    你没有添颜色当然是黑的,你可以先SetBkColor,再ExtTextOut(),或者创建个BRUSH添一下,而且你的字体颜色默认也是黑的,所以即使画了你也看不见
      

  2.   


      HDC dc;
       bmp HBITMAP;  dc = CreateCompatibleDC(Canvas.Handle);
      bmp=CreateCompatibleBitmap(dc,100,100);//add
      SelectObject(dc,bmp);//add
      SetBkColor(dc, RGB(255,0,0));
      TextOut(dc,0,0,"as",strlen("as"));
      BitBlt(GetDC(0), 0, 0, 300,800,dc, 0, 0, SRCCOPY);
      
      DeleteDC(a);
      DeleteObject(b);//add
    还是不行呀,麻烦大家了。
      

  3.   

    谢谢,解决了
    FillRect刷一下,谢谢
      

  4.   

    确实默认是黑的,用FillRect画一个就可以了,都是这样的