DOBON.NET DOBON.NETプログラミング掲示板過去ログ

アイコンをリストビューに表示すると黒い部分がある

環境/言語:[WindowsXP、VC#2003]
分類:[.NET]

SHGetFileInfoでファイルに関連づけられたアイコンを取得して
Icon.FromHandleでイメージリストに追加後、
追加したアイコンをリストビューで表示すると
黒い部分(本当は半透明になる?)が表示されます。
この黒い部分を半透明にするか表示自体をさせないように
するにはどうすればよいのでしょうか?
よろしくお願いします。
■No7198に返信(ピップスさんの記事)
> SHGetFileInfoでファイルに関連づけられたアイコンを取得して
> Icon.FromHandleでイメージリストに追加後、
> 追加したアイコンをリストビューで表示すると
> 黒い部分(本当は半透明になる?)が表示されます。
> この黒い部分を半透明にするか表示自体をさせないように
> するにはどうすればよいのでしょうか?
> よろしくお願いします。

WinXPということは、32bitアイコンでしょうか。
32bitアイコンの場合、Icon.FromHandleでは正常にイメージ変換されません。

半透明の仕方としては
OLE系DLLを利用してイメージ変換を行うしかないのかもしれませんが、
Graphicsオブジェクトでもいけるような気がします。
どちらにしろ、私にはやりかたは分かりません。
どなたか他の方、お願いします。

表示自体をさせないようにするには、
邪道ではありますが、背景を黒にするという方法を以前見ました。
ただ、半透明ではない、意図的に黒にしてある部分も消えてしまうので、
お勧めできません。
2004/11/07(Sun) 17:45:09 編集(投稿者)

このサイトの
「コントロールの外観をXPスタイルにする」
を行うと正しく半透明になりました。
通常スタイルでの実現方法を知っている方
いましたら教えてください。

> rakiさん
私も背景を黒くしようと思いましたが
同じような影響が出そうだったのでやめました。

DOBON.NET | プログラミング道 | プログラミング掲示板