夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

アイコンを選択するダイアログを表示する

WindowsのShell32.dllの中の隠し関数を使って、アイコンを選択するダイアログを表示できます。
名前もついておらず、SHChangeIconDialogやSHPickIconDialogと呼ばれているようです。
C#やVB.NETではDLLImportでEntryPointに#62を指定することで簡単に呼び出せます。

byte配列でしか受け取れないものだとばかり思っていましたが、ChraSet.Autoを指定すればStringBuilderで受け取れます。

宣言

 [DllImport("shell32.dll", CharSet = CharSet.Unicode , EntryPoint = "#62")]
 private extern static bool SHChangeIconDialog(IntPtr hOwner, StringBuilder szFilename, int Reserved, ref int lpIconIndex);

引数

IntPtr : hOwner
ダイアログを所有するウィンドウハンドルです。フォームのHandleプロパティ等を指定してやればOKです。
StringBuilder : szFilename
アイコンの入っているファイル名です。これにファイル名を指定すると初期でそのファイルの中のアイコンが表示されます。 MAX_PATH分(260文字)を格納できる大きさにしてください。
int : cchMax
ファイル名を格納するバッファの大きさを指定します。szFilenameの大きさと同じ260を指定してください。
int : lpIconIndex
ファイル内のアイコンのインデックスです。設定して渡せばその番号のアイコンが選択された状態で表示されます。
また、結果もこれに入っています。 戻ってくるデータを利用するため、必ずrefをつけてください。

戻り値

bool
OKが押された場合はtrue
実際の使用例はこちら。 CommonDialogにしてあるので、フォームなどからも簡単に使えます。
関連記事

コメント

ここをクリックしてコメントを投稿

非公開コメント

トラックバック

http://tinqwill.blog59.fc2.com/tb.php/2-f23af032

« next  ホーム

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。