リストビューのアイコンを32ビットで描画

打鍵のtomo2.0で簡単そうなところを少し修正.とりあえず「プロセス別打鍵数」のリストビュー(ListView)でアイコンのアルファチャンネル(不透明度)が有効になっておらず,本来半透明になるはずの色が黒くなっていたのを修正した.デフォルトではアイコンを24ビットで表示しているようなので,これを32ビットにしてやれば良いだけのことらしい.XPスタイルの外観にするのも条件の一つらしいがVS2005ではデフォルトでXPスタイルになっている.

Icon icon = ModuleIcon.GetIcon(app_path,
              ModuleIcon.SHGFI_ICON | ModuleIcon.SHGFI_SMALLICON);
if(icon != null){
    view.Items[app_path].ImageList.ColorDepth = ColorDepth.Depth32Bit;
    view.Items[app_path].ImageList.Images.Add(app_path, icon);
    view.Items[app_path].ImageKey = app_path;
}

※ModuleIcon.GetIconはSHGetFileInfo関数をラップしたもの.