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