Question

Je crée un programme utilitaire qui dessine des icônes (personnalisable par l'utilisateur) sur d'autres fenêtres sur le bureau à l'aide d'un hook global. Comme objets bitmap sont spécifiques à un processus, je crée des objets HBITMAP séparés pour ces icônes dans chaque processus avant de les étirer, et toutes ces poignées sont stockées dans un segment partagé dans le dll.

Maintenant, quand une icône est retirée dans mon programme (par l'utilisateur), tous les objets HBITMAP pour elle dans ces différents processus devraient être supprimés. Puis-je faire cela en utilisant DeleteObject () dans mon programme principal ou dois-je supprimer chaque poignée dans le processus dans lequel il a été créé?

Était-ce utile?

La solution

Certainement vous devez les supprimer d'un processus qui les a créés - même si cela fonctionne pour vous, pour la version windows différentes, il peut-être pas

.

Autres conseils

poignée d'objets GDI sont normalement processus d'un organisme privé. Vous pouvez vérifier la valeur de retour de DeleteObject de toute façon.

Je suis juste deviner celui-ci ...
vous devez utiliser un crochet pour accrocher à une autre fenêtre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top