CWnd  * pst =GetDlgItem( IDC_STATIC1);
//ASSERT(pst == NULL);
     CDC * dc = pst->GetDC();
     BITMAP * pBIT;
     CDC Mendc 
     CBitmap map ;
     map.LoadBitmap(IDB_BITMAP3);
    Mendc.CreateCompatibleDC(NULL);
    CBitmap *pold = Mendc.SelectObject(&map);
    map.GetBitmap(pBIT);
   dc->BitBlt(0,0,1000,1000,&Mendc,0,0,SRCCOPY);

解决方案 »

  1.   

    Mendc.CreateCompatibleDC(dc);
    试一试
      

  2.   

    你需要修改默认的Static的窗口风格,默认情况下不会显示bitmap的
    //hbmp is declared in the head file:
    //private :
    //HBITMAP hbmp
    hbmp=(HBITMAP)::LoadImage(::AfxGetInstanceHandle(),"quanzhixian.bmp",
    IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE);

    CStatic *pStatic=(CStatic*)this->GetDlgItem(IDC_STATIC_PICTURE);
    if(pStatic!=NULL)
    {
    pStatic->ModifyStyle(0,SS_BITMAP ,0);
    pStatic->SetBitmap (hbmp);
    }
      

  3.   

    Mendc.CreateCompatibleDC(dc)这样也不行!
    我想利用BITBLT();
      

  4.   

    可能是由于在对话框中的static 上面加载图片的,那么你在调用绘制图形前,要updateWindow一下。
      

  5.   

    呵呵,刚在百合上看见,在这里又看见了。
    实际先执行 Dialog 的 WM_PAINT(OnPaint()),再执行 Static 的 OnPaint(),所以你画
    过之后又执行了 Static 的默认的 OnEraseBackground 和 OnPaint 覆盖了你画的。
    为 Static 建一个 Control 变量,再在这个变量的 OnEraseBackground 或 OnPaint 里画