|
|
||||
Tips > |
|||||
実行ファイルのアイコンを ExtractIcon で抽出 |
更新 : 2010/06/17 |
||||
|
|
||
解説: 実行ファイルのアイコンを取得するには、ExtractIconEx 関数を使います。この関数は、アイコンが複数含まれた、ダイナミックリンクライブラリからも大きいアイコンや小さいアイコンが取得できます。 HICON ExtractIcon( HINSTANCE hInst, // インスタンスのハンドル LPCTSTR lpszExeFileName, // ファイル名 UINT nIconIndex // アイコンのインデックス番号 ); 通常は、アイコンのインデックスを 0 に指定します。こうすると、ファイルの最初のアイコンのハンドルが返ります。 アイコンの総数が知りたければ、-1 を指定すると分かります。 Tips には、システム定義アイコンの抽出関数 LoadIcon や exe 以外のファイルから抽出する SHGetFileInfo 関数も掲載してあります。参考にしてください。 使用例: 以下の例では、アプリケーションのアイコンを抽出して、Image1 に描画しています。 準備として Image, Button を適当に配置します。 アプリケーションを起動して、Button1 をクリックしてください。 アプリケーションのアイコンが ExtractIconEx 関数を使うことで Image1 に描画されます。 時間のある方は、複数のアイコンを取り出してみるといいでしょう。 #include "shellapi.h" //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Image1->Picture->Icon->Handle = ExtractIcon(Application->Handle, "Project1.exe", 0); } //------------------------------------------------------------------- |