4

SHGetFileInfo と ExtractIconEx を関連付けると、どちらも通常の 32x32 アイコンと 16x16 のアイコンを 16 色しか返さず、見栄えが悪くなります。フルカラーのアイコンを抽出するにはどうすればよいですか?

私のコード

SHFILEINFO shinfo = new SHFILEINFO();
IntPtr hImgSmall = SHGetFileInfo(fileName, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_SMALLICON);
Icon icon = (Icon)System.Drawing.Icon.FromHandle(shinfo.hIcon).Clone();
DestroyIcon(shinfo.hIcon);
4

3 に答える 3

4

このリンクテキストの例を試してみたところ、うまくいきました.....アルファチャンネルで16 * 16になりました。それを試してみてください。

于 2009-07-06T10:29:10.813 に答える
3

次のことを試しましたか?

Icon LargeIcon = Icon.ExtractAssociatedIcon(fileName);
Icon SmallIcon = new Icon(LargeIcon, 16, 16);
于 2009-07-06T10:47:03.787 に答える
2

ここで作業方法を見つけることができます: http://support.microsoft.com/?scid=kb;en-us;319350&x=14&y=9

于 2010-05-26T13:46:11.277 に答える