LoadImage() vs SHLoadImageFile()

    技术2022-05-13  7

     在windows mobile6下用LoadImage加载位图,但是始终都是加载失败,于是就改换为SHLoadImageFile,结果可以了。代码如下:

          

     CRect rect;                           //获得客户区大小 GetClientRect(&rect);

       CBitmap *m_pBmp;          TCHAR *pName = _T("//Storage Card//test.bmp");  

      //HBITMAP m_hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), pName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);

      HBITMAP m_hBmp = SHLoadImageFile(pName);    m_pBmp = CBitmap::FromHandle(m_hBmp);

     

      BITMAP bmp;                           m_pBmp->GetBitmap(&bmp);               //获取位图的尺寸大小

     

      CDC dcCompatible;                       dcCompatible.CreateCompatibleDC(&dc); //创建兼容dc

     

      dcCompatible.SelectObject(m_pBmp);   //将位图选到兼容dc中,在dc中显示位图的大小

      dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcCompatible, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);

     

      DeleteObject(m_pBmp);


    最新回复(0)