次へアイコンを取得・描画してみるアイコンWindowsを使っている以上は必ずお目にかかっているはずなので、アイコンが何かとはいまさら説明することもないと思いますが、デスクトップやタスクバー、各ウィンドウの左上など、至るところに表示されているビットマップイメージのことです。Windowsでは、ユーザーが操作を視覚的に行なうことができるように、画面の表示にグラフィックスを多用し、マウスによって操作を行なうことができるGUI(グラフィカルユーザーインターフェース)が使われています。この中で、アイコンはファイルやフォルダ、ショートカット、アプリケーションなどを表すために使用され、これらをマウス操作することで対象を開いたり実行したりすることができるようになっているのです。これらのアイコンの実際のデータは、アイコンリソースとして、実行可能ファイル(EXEやDLL)やアイコンファイル(.ICO)の中に含まれています。(『リソース』は広い意味ではプログラム実行時に資源とみなせるあらゆるものを指しますが、ここでは、狭い意味での、Windowsプログラムで使用されるメニュー、アイコン、カーソルなどのようなデータを指しています。)今回はこれらのファイルからアイコンを読み込んで表示してみたいと思います。アイコンオブジェクトの作成Windows上では、GUIを構成するアイコンは、ユーザーオブジェクトの1つである『アイコンオブジェクト』として扱われます。したがって、プログラム中でアイコンを使用するためには、まずアイコンオブジェクトを作成してハンドルを取得し、そのアイコンオブジェクトを識別するハンドル(アイコンハンドル)をアイコン操作関数に渡さなくてはなりません。アイコンオブジェクトを作成するための方法は何通りかあります。ビットマップイメージから直接作成する方法もありますが、今回は、実行可能ファイルにアイコンリソースとして含まれるアイコンや、アイコンファイル(.ico)に含まれているアイコンのデータを取り出して、そのデータからアイコンオブジェクトを作成する方法を説明しましょう。