我想将hicon 或着 hBitmap所指的图象数据传输到客户端,怎样能得到其真正的内存数据

解决方案 »

  1.   

    hBitmap类型可以使用GetBitmapBits函数
    hIcon类型可以使用GetIconInfo,获得一个ICONINFO结构,其中包含了一个位图句柄和他的掩图句柄,按照HBITMAP来处理就行了.
    你这样做是不合理的.位图和图标的数据结构依赖硬件设置,在你电脑上显示很好的数据在别人电脑上就很糟糕.至少你应该把他们转化为dib数据.一般来讲,应该转化为jpeg或者gif数据来传输.
    网上有很多dib的代码.windows有一个IPicture接口可以实现jpeg数据转化.你也可以使用gdi+来处理,更加方便
      

  2.   

    我有一个非常重要的程序是将服务器上的某个应用程序的ICON传输到客户端,而且是运行时,我企图将icon(16x16)的图形压缩成jpeg,发现比原来大了一倍,所以我就不压缩了,直接传,但我不能得到PiconInfo->pbitmap 下的象素内存块,我该怎么办呢,请回答.
      

  3.   

    我也想知道hicon句柄在内存中的地址怎获得,哪位高手发言????
      

  4.   

    GetDIBits
    The GetDIBits function retrieves the bits of the specified compatible bitmap and copies them into a buffer as a DIB using the specified format. 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
    );