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

削除された内容 追加された内容
syntaxhighlight を lang=c から lang="C" に更新。
46 行
 
とにかくコードは、
<syntaxhighlight lang=c"C">
HBITMAP hbmp;
 
70 行
まず、表示先の画面は、通常の設定では「hdc」という名前である。
 
<syntaxhighlight lang=c"C">
TextOut(hdc, 10, 30, TEXT("テスト"), 3);
</syntaxhighlight>
80 行
例えば、もし画像作成用の画面の名前を hbackDC にするなら、下記のように宣言する。
 
<syntaxhighlight lang=c"C">
HDC hbackDC = CreateCompatibleDC(hdc);
</syntaxhighlight>
91 行
 
そして、 hbackDC で作成した画像を表示するには、例えば
<syntaxhighlight lang=c"C">
BitBlt(hdc, 0, 0, 700, 500, hbackDC, 0, 0, SRCCOPY);
</syntaxhighlight>
105 行
==== 後片付けが必要 ====
使い終わった画像操作用ハンドルは、
<syntaxhighlight lang=c"C">
DeleteObject(hbmp);
</syntaxhighlight>
112 行
 
しかし、使用中のほかの画面や画像と関連づけてると削除できない(そういう仕様)ので、
<syntaxhighlight lang=c"C">
hbmp = NULL;
DeleteObject(hbmp);
120 行
使い終わった、画像作成用の画面を削除する場合は、DeleteDC を使う。これまた、使用中のほかのハンドルと関連づけていると削除できない(そういう仕様)ので、
 
<syntaxhighlight lang=c"C">
SelectObject(hbackDC, NULL);
DeleteDC(hbackDC);
133 行
=== 入門 ===
単に
<syntaxhighlight lang=c"C">
#pragma comment(lib,"Gdiplus.lib")
#include <ole2.h>
144 行
なお、原理的には
 
<syntaxhighlight lang=c"C">
#include <ole2.h>
#include <gdiplus.h>
165 行
 
::(動作確認: 2020年4月14日に、下記コードで Visual Studio 2019 にて動作することを確認ずみ)
<syntaxhighlight lang=c"C">
case WM_PAINT:
{
199 行
単に、下記のように、繰り返しで、
 
<syntaxhighlight lang=c"C">
// 画像の読み込み「image」は変数名。
Image ○○(L"test.png");
212 行
つまり、コード例は、
 
<syntaxhighlight lang=c"C">
case WM_PAINT:
{
285 行
 
;winMAin側
<syntaxhighlight lang=c"C">
 
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
309 行
;WM_PAINT 側
 
<syntaxhighlight lang=c"C">
Graphics graphics(hdc);
 
327 行
 
CImageを使うには、"MFC"というものをインストールする必要がある。標準では、MFCはインストールされていないので、Visual Studioのインスト-ラでMFCビルドツールを追加インストールする必要がある。もし
<syntaxhighlight lang=c"C">
#include <afxwin.h>
</syntaxhighlight>
343 行
==== include文 ====
さてMFCのインストールが完了したら、プログラミング方法については、MFCをどういう方法で使うかによってinclude方法が異なる可能性はありますが、おおむね冒頭のinclude文で、まずは
<syntaxhighlight lang=c"C">
#include "stdafx.h"
#define _AFXDLL
362 行
 
ビルド時に windows.h が 2回読み込まれてエラーになってコンパイルができない場合があるので、その場合は stdafx.h ファイルにある <code> #include <windows.h> </code> を、コメントアウトして
<syntaxhighlight lang=c"C">
// #include <windows.h>
</syntaxhighlight>