投稿日 | : 2005/02/04(Fri) 12:46 |
投稿者 | : K.J.K. |
Eメール | : akiya@koalanet.ne.jp |
URL | : |
タイトル | : Re: アイコン転写時の疑問 |
PictureBoxやFormのImageプロパティは、内部で保持しているビットマップ
及びメモリーDCを、簡易的にVBのオブジェクトとして扱えるようにされた
ものです。
で、データの変化があった、とVBランタイム内でみなされない限り、現在
関連付けられているPictureオブジェクトを使い続けようとします。API
関数を直接使っても、変化を検出されないので注意が必要です。
変化があった、と検出させるためには、描画関連のメソッドやプロパティ
(一部のものでは効果ありません。)や、リサイズするなどの手があります。
Pictureプロパティを更新することも、その1つになるでしょう。
で、関連した事項について。
SHGetFileInfoでアイコンを取得し描画するのであれば、アイコンハンドル
を経るより、イメージリスト(ImageList_Draw(Ex))経由で行うほうが負担が
かからなくなります。それと、アイコンのハンドルは使い終わったら破棄
(DestroyIcon)しないと。
アイコンのハンドルに拘るのであれば、私ならばOleCreatePictureIndirect
を使います。