Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何访问窗口的内部位图?_C++_Winapi_Window - Fatal编程技术网

C++ 如何访问窗口的内部位图?

C++ 如何访问窗口的内部位图?,c++,winapi,window,C++,Winapi,Window,我看完后很担心 该条内容如下: 设备上下文不是真正的渲染目标,它只是一个数据 包含有关渲染目标的信息的结构。当你使用 GDI函数渲染到DC,该函数将仅使用DC 获取如何以及在何处设置像素的信息。实际的 渲染目标是在设备中选择的内存中位图 上下文 AGG库使用位图缓冲区作为渲染目标。我需要将图形渲染到窗口。最明显的方法是创建一个内存位图并将其BitBlt到窗口DC 但是有更好的办法吗?是否可以访问窗口的内部位图以向其进行渲染?如果您没有自己在DC中选择位图,则可以使用GetCurrentObjec

我看完后很担心

该条内容如下:

设备上下文不是真正的渲染目标,它只是一个数据 包含有关渲染目标的信息的结构。当你使用 GDI函数渲染到DC,该函数将仅使用DC 获取如何以及在何处设置像素的信息。实际的 渲染目标是在设备中选择的内存中位图 上下文

AGG库使用位图缓冲区作为渲染目标。我需要将图形渲染到窗口。最明显的方法是创建一个内存位图并将其BitBlt到窗口DC


但是有更好的办法吗?是否可以访问窗口的内部位图以向其进行渲染?

如果您没有自己在DC中选择位图,则可以使用
GetCurrentObject(DC,OBJ\U位图)
获取该DC中当前选定的位图。如果结果为空,则必须首先自己创建并选择位图


在AGG Attach例程中使用该位图句柄。

如果从绘制周期进行渲染,则
BeginPaint
函数会向窗口提供DC。如果从绘制周期之外进行渲染(不推荐),
GetDC
将为窗口提供DC。请注意,这样做会忽略AGG所做的任何事情,因此您需要向AGG检查您所做的是否与AGG一致。您是否正在使用AGG库尚不清楚。你认为,或者这是一个关于如何有效利用DC的一般性问题?