问题描述
我试图使用
I was trying to get a handle to GDI object(DDB) from managed code(C#), using
bitmap.GetHbitmap(), MSDN表示此函数将返回GDI对象句柄,
bitmap.GetHbitmap(), MSDN says this function will return a GDI object handle,
但是我希望使用透明颜色制作位图,这意味着我将使用
however I hope to make the bitmap with a transparent color, which means I will use
SetBkColor(dcBmp,crTransparent),但无法正常工作.
注意:如果我在非托管代码中使用 LoadImage(...)来获取句柄(HBITMAP),然后使用 SetBkColor(..)
Note: if I use LoadImage(...) in unmanaged code to get a handle(HBITMAP), then using SetBkColor(..)
它将正常工作.
所以我想知道到底是什么 bitmap.GetHbitmap()会返回.以及.NET如何分配这部分内存.
So I wonder what on earth bitmap.GetHbitmap() will return. and how does .NET allocate this part of memory.
如何对这部分内存进行一些操作.不仅可以阅读而且可以更改.
如果有人可以给我一个线索,非常感谢.
推荐答案
GetHbitmap内部调用..方法,该方法又会创建并返回本机位图.
GetHbitmap internally calls SafeNativeMethods.Gdip.GdipCreateHBITMAPFromBitmap method which in its turn creates and returns native bitmap.
这篇关于到底bitmap.GetHbitmap()会返回什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!