已经得到HBITMAP,如果把位图数据通过SOCKET发送出去?
发送出去后又如何再生成位图把画到对话框上?
谢谢

解决方案 »

  1.   

    int GetDIBits(
      HDC hdc,           // handle to DC
      HBITMAP hbmp,      // handle to bitmap
      UINT uStartScan,   // first scan line to set
      UINT cScanLines,   // number of scan lines to copy
      LPVOID lpvBits,    // array for bitmap bits
      LPBITMAPINFO lpbi, // bitmap data buffer
      UINT uUsage        // RGB or palette index
    );
    可以把ddb转化为dib 
    然后把dib信息发送到目的地
    然后可以通过CreateDIBSection等函数把它转化为ddb再显示出来
      

  2.   

    谢谢
    我试一试
    把HBITMAP转换成DIB能给点提示吗?要用到哪几个函数?
      

  3.   

    比较简单的方法:1.把你的HBITMAP选入一个memo DC_src中。SelectObject(...);
    2.创建一个DIBSection。CreateDIBSection(...);在参数中填入你希望的位图格式BITMAPINFO。在这里你还可以得到DIB位图的数据地址m_pBits。
    3.把DIB选入一个另一个DC_dest中。SelectObject(...);
    4.BitBlt(DC_dest,...,DC_src,..),这样DIB中就写入了位图数据。
    5.传送BITMAPINFO结构和m_pBits指向的数据块(图像数据)。
    6.接收数据,构造DIBSection,显示!Everything is Okay now!