HBITMAP hBitmap = (HBITMAP)LoadImage( AfxGetInstanceHandle(), TEXT("e:\\bk.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE ); DWORD err = GetLastError(); CBitmap bitMap;
bitMap.Attach( hBitmap );

//if( !hBitmap )
{
CPoint pBit( ticketT.rectTicket.left, ticketT.rectTicket.top );
CSize sizeBit( ticketT.rectTicket.Width(), ticketT.rectTicket.Height() ); pDC->DrawState( pBit, sizeBit, &bitMap, DST_BITMAP ); bitMap.DeleteObject();
}代码如上:在VS2008下,err 总是 8 ,请问高手,是怎么回事啊?

解决方案 »

  1.   

    8     Not enough storage is available to process this command.    ERROR_NOT_ENOUGH_MEMORY 
      

  2.   

    err=8 错误信息:存储空间不足,无法处理此命令。
      

  3.   

    HBITMAP hBitmap 将此变量声明为全局或是静态的,再试试, 有可能是栈空间不够了
      

  4.   

    你的bk。bmp 是不是太大,换张小图片,看看
      

  5.   

    lz确定是你的LoadImage函数调用失败??他的返回值为NULL???
    GetLastError()确定不是上一次的错误????
      

  6.   

    shloaddibitmap用这个API试试, 或者是用将bmp位图换成其他格式的例如*.jpg, *.gif, *.png再试试
      

  7.   

    代码如上:在VS2008下,err 总是 8 ,请问高手,是怎么回事啊?
    ===============
    应该是你的BMP文件过大,以前有人也遇到见,这里有篇资料和这个有关。参考
      

  8.   

    呵呵。大家辛苦了。假期过去了,回来看看。估计是windows系统对图片的处理机制和我们正常思维方式不一样。将图片导入工程就不会出现问题。wltg2001给的参考上说从文件导入的图片是放在系统内存里的,恩。再研究一下。
      

  9.   

    问题解决了,用的是IPicture的方法。LoadImage函数一次成功都没有