对于函数selectobject的第二个参数是HBITMAP类型时,为什么此参数只能时CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection 函数所创建的HBITMAP类型句柄,而不能时GobalAlloc函数返回的HBITMAP类型句柄,这两者之间有什么区别吗??为什么不能统一起来???那么同一个类型的句柄比如HBITMAP所确定的不是同样的结构吗??

解决方案 »

  1.   

    GobalAllock只是申请一块内存,什么都没有做,CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection 都对位图做了初始化。
    另外,你对句柄还是不怎么了解,HBITMAP这个类型等价于UNSIGNED LONG型,它只是用来找到对应的资源的。
      

  2.   

    如果我通过GobalAlloc返回的句柄,然后通过GobalLock返回内存结构指针,如果我把此内存利用手工填充了数据也不行啊 ??
    你所说的初始化时什么意思啊???这两者又有什么区别呢??
      

  3.   

    有些结构可以,有些不可以,初始化就是申请资源,内核变量之类的。就像NEW函数一样,调用类的构造函数进行初始化。