Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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++ 我可以删除在另一个进程中创建的HBITMAP对象吗?_C++_Winapi_Hbitmap - Fatal编程技术网

C++ 我可以删除在另一个进程中创建的HBITMAP对象吗?

C++ 我可以删除在另一个进程中创建的HBITMAP对象吗?,c++,winapi,hbitmap,C++,Winapi,Hbitmap,我正在创建一个实用程序,它使用全局钩子将一些(用户可自定义的)图标绘制到桌面上的其他窗口上。由于位图对象特定于一个进程,因此在绘制它们之前,我将在每个进程中为这些图标创建单独的HBITMAP对象,并且所有这些句柄都存储在dll中的共享段中 现在,当用户在我的程序中删除图标时,应该删除这些不同进程中该图标的所有HBITMAP对象。我可以在主程序中使用DeleteObject()来执行此操作,还是必须在创建过程中删除每个句柄?GDI对象的句柄通常是进程的私有句柄。您仍然可以检查DeleteObjec

我正在创建一个实用程序,它使用全局钩子将一些(用户可自定义的)图标绘制到桌面上的其他窗口上。由于位图对象特定于一个进程,因此在绘制它们之前,我将在每个进程中为这些图标创建单独的HBITMAP对象,并且所有这些句柄都存储在dll中的共享段中


现在,当用户在我的程序中删除图标时,应该删除这些不同进程中该图标的所有HBITMAP对象。我可以在主程序中使用DeleteObject()来执行此操作,还是必须在创建过程中删除每个句柄?

GDI对象的句柄通常是进程的私有句柄。您仍然可以检查DeleteObject的返回值。

您肯定必须从创建它们的进程中删除它们-即使它对您有效,但对于不同的windows版本,它可能不起作用。

我只是猜测这一个…
你应该用钩子,钩住不同的窗户