|
||
解説: ファイルやエクスプローラーで使われているアイコン、システムで定義されたアイコンを抽出したいときがあります。 実行ファイルのアイコンは、以前 ExtractIcon 関数を使って取得しました(SHGetFileInfo 関数を使った方法はこちら)。 今回は、システムで定義されたアイコンをロードしてみたいと思います。関数は、Win32API のLoadIcon を使います。 使用例: アプリケーションを起動して、Button1 をクリックすると、感嘆符のアイコンが Image1 に表示されます。 準備として、Button と Image をひとつずつ配置してください。 Button1 の OnClick イベントハンドラで、LoadIcon 関数に感嘆符のアイコンを意味するIDI_EXCLAMATION を引数に指定します。 LoadIcon 関数は成功すると、新しくロードされたアイコンのハンドルが返りますので、Image1 のアイコンハンドルに代入します。 システムが定義しているアイコンは、アプリケーションアイコン、Windows ロゴアイコンなど、いろいろな種類がありますので、表示させてみるといいでしょう。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // システムで定義されたアイコンを表示 Image1->Picture->Icon->Handle = LoadIcon(NULL, IDI_EXCLAMATION); } //------------------------------------------------------------------- |