有没有API可以实现,我不想用SelectObject

解决方案 »

  1.   

    HBITMAP hbitmap;
    hbitmap=(HBITMAP)::LoadImage (::AfxGetInstanceHandle(),"MM.bmp",
            IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
      

  2.   

    我没有用LoadImage来加载图片,自己写了一个CBmp类,按DIB格式读取BMP
    然后用
    SetDIBitsToDevice(hdc,x,y,Width,Height,0,0,0,Height,(LPVOID)Raster,pbmp_i,DIB_RGB_COLORS);
    在某个DC上显示位图,显示的过程中系统应该自动创建画布BITMAP了吧,如何就这hdc获得hBitmap呢?
      

  3.   

    假如你要获得 aaa.bmp 的位图的句柄:
    HBITMAP hBitmap=(HBITMAP)LoadImage(hInstance,"aaa.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
      

  4.   

    BITMAPINFO也有了,位图数据也有了,剩下的就是CreateBitmap()就行了。
      

  5.   

    我查了半天,发现CreateBitmap这东西并不好用呀,
    相关的还有CreateDIBSection怎样才能实现类似CreateCompatibleBitmap的功能呢?其间还要用那些API?
      

  6.   

    CreateBitmap()返回HBITMAP,而你的参数已经足够了,为什么不行?
      

  7.   

    SelectObject就是api吧,用这个停好的啊
      

  8.   

    HBITMAP hBitmap = (HBITMAP)GetCurrentObject(hDC, OBJ_BITMAP);
      

  9.   

    HBITMAP hBitmap = (HBITMAP)GetCurrentObject(hDC, OBJ_BITMAP);