C++ 如何使用指向C+中位图数据的指针直接绘制到内存+;?

C++ 如何使用指向C+中位图数据的指针直接绘制到内存+;?,c++,multithreading,bitmap,mfc,drawing,C++,Multithreading,Bitmap,Mfc,Drawing,我面临的问题是,不可能同时从多个线程绘制到一个hdc。我发现可以创建位图,为写访问锁定它,并在内存中获取指向位图数据的指针。线程是关于这个主题的,但是我很难实现所有这些 我的第一个问题是:如果我想得到这个指向数据的指针,位图是如何创建的(CreateCimpatibleDC()还是CreateDIBitmap())重要吗 第二个问题是:如何获取指针?在线程中,它是从CreateDIBSection()函数接收的 谁能给我举一个小例子,说明如何使用指针访问数据?提前感谢。可能会帮助您感谢您的链接。

我面临的问题是,不可能同时从多个线程绘制到一个hdc。我发现可以创建位图,为写访问锁定它,并在内存中获取指向位图数据的指针。线程是关于这个主题的,但是我很难实现所有这些

我的第一个问题是:如果我想得到这个指向数据的指针,位图是如何创建的(CreateCimpatibleDC()还是CreateDIBitmap())重要吗

第二个问题是:如何获取指针?在线程中,它是从CreateDIBSection()函数接收的


谁能给我举一个小例子,说明如何使用指针访问数据?提前感谢。

可能会帮助您感谢您的链接。然而,我很难处理“数据”变量。应该是哪种类型,以便我可以在位图上绘制像素?另一个问题:如果我直接用内存“对话”,我可能不需要运行BeginPaint和EndPaint,对吗?你在内存中创建了一个hBitmap,但你的绘图涉及dc。这就是GDI的工作方式。你不能绘制hBitmap,只能绘制dc。这个hdc是您从BeginPaint获得的hdc中bitblt()的内容。所以你需要它。不幸的是,您无法从控件hdc中获取指针……我很难处理“data”变量。如果hBitmap为24位,设置像素颜色,例如第一个(蓝色):`data[0]=255;数据[1]=0;数据[2]=0'。颜色是BGR BGR。。。但是,我不确定数据数组中的第一个像素是位图的左上角还是右下角。你需要做一点实验。