Могу ли я удалить объект HBitMap, созданный в другом процессе?

StackOverflow https://stackoverflow.com/questions/4378385

  •  09-10-2019
  •  | 
  •  

Вопрос

Я создаю коммунальную программу, которая рисует некоторые (пользовательские настраиваемые) значки на других окнах на рабочем столе, используя глобальный крюк. Поскольку битовые объекты специфичны для процесса, я создаю отдельные объекты HBitMap для этих значков в каждом процессе, прежде чем я рисую их, и все эти ручки хранятся в общем сегменте в DLL.

Теперь, когда значок удаляется в моей программе (по пользователю), все объекты HBitMap для него в этих различных процессах должны быть удалены. Могу ли я сделать это, используя deleteObject () в мою главной программе или мне нужно удалить каждую ручку в процессе, в котором он был создан?

Это было полезно?

Решение

Определенно вы должны удалить их из процесса, который их создал - даже если он работает для вас, для разной версии Windows она не может.

Другие советы

Ручка объектов GDI обычно является частным процессом. Вы можете проверить возвращаемое значение DeleteObject в любом случае.

Я просто думаю, что это ...
Вы должны использовать крючок, чтобы подключить к другому окну.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top