「Windows API」の版間の差分

削除された内容 追加された内容
画像ハンドルの使い方について。
画像関連の章の構成を整理。
1,347 行
上述のような様々な理由が合わさり、win32APIでは、日本語文字の格納は、wchar_t 型で行うのが望ましいだろう。
 
== 画像の操作 ==
=== 画像操作の概要 ===
Win32APIで扱える画像は、標準設定のままでは ビットマップ画像(.bmp)しか扱えない。
 
1,366 ⟶ 1,367行目:
 
 
=== Win32 API での画像表示に必要な知識 ===
==== 画像の編集の宣言 ====
まず、表示したい画像そのものの作成は、アクセサリ「ペイント」で先にすませておく必要がある。
まず、GDI+をインクルードしてない状態での操作を説明する。当然、ビットマップ形式しか、画像ファイルは扱えない。
 
まずなお、表示したいビットマップ画像そのものの作成は、アクセサリ「ペイント」で先にすませておく必要がある。
LoadImage という命令で、ビットマップ画像の読み込みができる。しかし、事前に、
 
 
画像操作用のハンドルをHBITMAP 型を使って宣言しないといけない。「ハンドル」とは、なにやら正体が不明だが、ウィンドウプログラミングでファイル操作をするときとかに、宣言する必要になることになる、何かである。
さて、Win32 API では LoadImage という命令で、ビットマップ画像の読み込みができる。しかし、事前に、
 
しかし、事前に、画像操作用のハンドルをHBITMAP 型を使って宣言しないといけない。「ハンドル」とは、なにやら正体が不明だが、ウィンドウプログラミングでファイル操作をするときとかに、宣言する必要になることになる、何かである。
 
マイクロソフト社の人が、こういう仕様で作ってしまったので、ユーザーは従うしかない。
1,394 ⟶ 1,399行目:
ウィンドウ内への画像の表示には、BitBlt 関数を使う。
 
さらに、表示先の画面と、画像作成編集用の仮想的な画面とが、Win32APIでは概念が分かれている。
 
 
Win32APIでも表示先の画面上で、直接、画像を編集することも可能であるが、説明の簡単のため、本書では、画像編集用の仮想画面で編集をしてから、その編集結果を、表示先の画面に転送するという仕組みで説明する。
 
 
まず、表示先の画面は、通常の設定では「hdc」という名前である。
 
<source lang=c>
1,403 ⟶ 1,413行目:
 
 
さて、画像作成用の仮想的な画面は、自分で宣言する必要がある。
 
例えば、もし画像作成用の画面の名前を hbackDC にするなら、下記のように宣言する。
1,424 ⟶ 1,434行目:
 
 
実は、いちいち hbackDCなどの画像作成用の画面を作成しなくとも、直接的にhdcの上で作成・表示もまとめて出きる。
 
しかし、hdc上で直接作成した場合には、表示する画像の数が多いと、画像の貼り付け中の画面もそのまま表示されてしまう場合がある。
 
もし、画像の貼り付け中の過程を隠したい場合などには、hbacKDCのように作成画面を別途用意する必要がある。
 
==== 後片付けが必要 ====
使い終わった画像操作用ハンドルは、
<source lang=c>
DeleteObject(hbmp);