none
有關PPC螢幕顯示BMP圖片 RRS feed

  • 問題

  • 大家好:

    我寫了一段程式如下,想讓手機螢幕顯示BMP圖檔

    程式如下:

    DC *pDC = NULL;
     CDC bitmapDC;
     CBitmap bitmap;
     bitmap.Attach(SHLoadImageFile(_T("\\My Documents\\我的圖片\\beagirl.bmp")));

     BITMAP bmpInfo;
     bitmap.GetBitmap(&bmpInfo);

     
     bitmapDC.CreateCompatibleDC(pDC);
     CBitmap* pOldBitmap = bitmapDC.SelectObject(&bitmap);

     pDC->StretchBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &bitmapDC, 0, 0 , 320, 240, SRCCOPY);
     bitmapDC.SelectObject(pOldBitmap);
     BOOL XX = bitmap.DeleteObject();]

    但是設置中斷點後,發現到紅色這行之後,程式就不會在跳到粉色這行的中斷點

    於是在執行到紅色這行程式碼後,按F11觀察,發現

    程式停在下面這行程式碼的黃色區域就無法在往前執行了

    _AFXWIN_INLINE BOOL CDC::StretchBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC,
     int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop)
     { ASSERT(m_hDC != NULL); return ::StretchBlt(m_hDC, x, y, nWidth, nHeight,
      pSrcDC->GetSafeHdc(), xSrc, ySrc, nSrcWidth, nSrcHeight,
      dwRop); }

    請問是哪裡出了問題呢?謝謝

    2006年9月4日 下午 03:02

解答

  • HI,

    這個錯誤應該是pDC指標未指定到一個可用的DC物件, 因為您將pDC指標的初值填作NULL, 中間也附予初值, 一旦使用, 自然出現ASSERT(m_hDC != NULL)的錯誤:

    DC *pDC = NULL;
     ....

     pDC->StretchBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &bitmapDC, 0, 0 , 320, 240, SRCCOPY);

    tihs

     

    2006年9月5日 上午 12:50