1

グローバルフックを使用して、デスクトップ上の他のウィンドウにいくつかの(ユーザーがカスタマイズ可能な)アイコンを描画するユーティリティプログラムを作成しています。ビットマップオブジェクトはプロセスに固有であるため、描画する前に、プロセスごとにこれらのアイコン用に個別のHBITMAPオブジェクトを作成し、これらのハンドルはすべてdllの共有セグメントに格納されます。

これで、プログラムでアイコンが(ユーザーによって)削除されたときに、これらのさまざまなプロセスでのアイコンのすべてのHBITMAPオブジェクトを削除する必要があります。メインプログラムでDeleteObject()を使用してこれを行うことはできますか、それとも作成されたプロセスで各ハンドルを削除する必要がありますか?

4

3 に答える 3

1

確かに、それらを作成したプロセスからそれらを削除する必要があります-それがあなたのために働いたとしても、異なるウィンドウズバージョンではそうではないかもしれません。

于 2010-12-07T17:26:59.103 に答える
1

GDIオブジェクトへのハンドルは、通常、プライベートプロセスです。とにかくDeleteObjectの戻り値を確認できます。

于 2010-12-07T16:10:30.617 に答える
0

私はこれを推測しています...
別のウィンドウにフックするには、フックを使用する必要があります。

于 2010-12-11T01:06:10.537 に答える