「Windows API/画像の操作」の版間の差分

削除された内容 追加された内容
syntaxhighlight を lang=c から lang="C" に更新。
Ef3 (トーク | 投稿記録)
{{Nav}},s/命令/関数/
1 行
{{Nav}}:
:※ 直線や長方形など簡単な図名の描画についてはwikibooks『[[Windows API/図形の描画]]』で説明してある。
 
== 画像の操作 ==
37 ⟶ 38行目:
 
 
さて、Win32 API では LoadImage という命令関数で、ビットマップ画像の読み込みができる。
 
しかし、事前に、画像操作用のハンドルをHBITMAP 型を使って宣言しないといけない。「ハンドル」とは、なにやら正体が不明だが、ウィンドウプログラミングでファイル操作をするときとかに、宣言する必要になることになる、何かである。
58 ⟶ 59行目:
 
 
さて、Win32 API では、ウィンドウ内での画像の表示と、画像データの作成は、別の命令関数になる。当然だが、ウィンドウ外部には画像を表示できない。
 
ウィンドウ内への画像の表示には、BitBlt 関数を使う。
148 ⟶ 149行目:
#include <gdiplus.h>
</syntaxhighlight>
だけでもインクルードできるが、しかし[https://docs.microsoft.com/ja-jp/windows/win32/api/gdiplusheaders/nf-gdiplusheaders-image-removepropertyitem MSDN『Image::RemovePropertyItem method』 ]にあるGDI+のサンプルコードにある命令関数のいくつかを使う際に、上述の <code>#pragma comment(lib,"Gdiplus.lib")</code> や <code>using namespace Gdiplus;</code> が必要になる。
 
 
179 ⟶ 180行目:
// 以上、MSDN からの引用.
 
// Graphics 型の命令関数の読み込みのためにダミー変数 graphics を宣言.
Graphics graphics(hdc);
 
230 ⟶ 231行目:
// 以上、MSDN からの引用.
 
// Graphics 型の命令関数の読み込みのためにダミー変数 graphics を宣言.
Graphics graphics(hdc);
 
264 ⟶ 265行目:
 
 
あとから描画された画像のほうが画像レイヤーでは上層に来るので、載せるフタ側の画像(例の場合ではfilter.png)をあとから描画命令関数をする必要がある。
 
 
350 ⟶ 351行目:
</syntaxhighlight>
 
のように宣言する必要が生じるかと思います。Windowsの実装上の都合により、<code>_AFXDLL</code> という定数のdefine命令関数が必要になります。
 
このほか、ソリューションのプロパティ設定により、