我导入一个高色彩的位图,但是发现色彩失了好多我应该怎么做?

解决方案 »

  1.   

    可以向下面这样做:
    try {
         CDC bkMemDC ; //建立内存DC
         CBitmap abkBmp ;
         HBITMAP hBmp; //Bitmap handle 
         BITMAP bm ;
         bkMemDC.CreateCompatibleDC(pDC) ;
       hBmp = (HBITMAP) ::LoadImage(NULL,
                           bmpPathName, //这个参数是Bmp路径名称
            IMAGE_BITMAP,      0,0,  LR_LOADFROMFILE | LR_CREATEDIBSECTION) ;
       abkBmp.Attach(hBmp) ; // 将句柄挂接到abkBmp对象上
       abkBmp.GetObject(sizeof(bm),&bm) ;  //取得Bmp的尺寸
       bkMemDC.SelectObject(&abkBmp) ; // 画到内存DC上
       pDC->StretchBlt(0,0,pRect->Width(),pRect->Height(),
    &bkMemDC,
    0,0,bm.bmWidth,bm.bmHeight,
    SRCCOPY) ;
         }catch(...) 
         {
             CString erMsg ;
             erMsg.LoadString(IDS_ERRORREADBMP) ;
             MessageBox(erMsg,NULL,MB_OK) ;
          }
      

  2.   

    同意明明的方法,哈哈,最简单:先随便建立一个资源,然后用你的高彩位图同名覆盖那个文件RES下的同名文件即可。