Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Winapi 您真的需要放回原始设备上下文位图,还是只需将其切换并删除原始设备上下文位图就可以了?_Winapi_Gdi - Fatal编程技术网

Winapi 您真的需要放回原始设备上下文位图,还是只需将其切换并删除原始设备上下文位图就可以了?

Winapi 您真的需要放回原始设备上下文位图,还是只需将其切换并删除原始设备上下文位图就可以了?,winapi,gdi,Winapi,Gdi,如果我创建一个内存设备上下文CreateCompatibleDC(),然后SelectObject()为它创建一个位图。我可以只DeleteObject()通过SelectObject()返回的旧位图,然后让设备上下文删除我创建的位图吗?或者我必须保留旧位图,然后在不再需要时(析构函数)选择旧位图并删除我创建的位图吗?保存一个永远不会被使用的位图似乎是在浪费内存 蒂娅 不,您不能只删除旧位图,因为您不拥有它(即,您没有创建它),您也不知道谁拥有它(即,系统)。因此,是的,在HDC中使用新位图后,

如果我创建一个内存设备上下文
CreateCompatibleDC()
,然后
SelectObject()
为它创建一个位图。我可以只
DeleteObject()
通过
SelectObject()
返回的旧位图,然后让设备上下文删除我创建的位图吗?或者我必须保留旧位图,然后在不再需要时(析构函数)选择旧位图并删除我创建的位图吗?保存一个永远不会被使用的位图似乎是在浪费内存


蒂娅

不,您不能只删除旧位图,因为您不拥有它(即,您没有创建它),您也不知道谁拥有它(即,系统)。因此,是的,在HDC中使用新位图后,必须将旧位图恢复到HDC中