コード:
#include "Header.h"
#include "resource.h"
//Windowsプログラムエントリーポイント
int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hprevInst, LPSTR IpsCmdLine, int nCmdShow)
{
MSG msg;
BOOL bRet;
if (!InitApp(hCurInst))
return FALSE;
if (!InitInstance(hCurInst, nCmdShow))
return FALSE;
//メッセージを取得
while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
{
if (bRet == -1)
{
break;
}
else
{
TranslateMessage(&msg); //メッセージを変換
DispatchMessage(&msg); //メッセージを送出
}
}
return (int)msg.wParam;
}
ATOM InitApp(HINSTANCE hInst)
{
// WNDCLASSEX wc;
WNDCLASSEX wc={};
wc.cbSize = sizeof(WNDCLASSEX); //構造体のサイズ
wc.style = CS_HREDRAW | CS_VREDRAW; //クラスのスタイル
wc.lpfnWndProc = WndProc; //プロシージャ名
wc.cbClsExtra = 0; //補助メモリ
wc.cbWndExtra = 0; //補助メモリ
wc.hInstance = hInst; //インスタンス
/* wc.hIcon = (HICON)LoadImage(NULL, //アイコン
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON, 0, 0,
LR_DEFAULTSIZE | LR_SHARED);
wc.hCursor = (HCURSOR)LoadImage(NULL, //カーソル
MAKEINTRESOURCE(IDC_ARROW),
IMAGE_CURSOR, 0, 0,
LR_DEFAULTSIZE | LR_SHARED);*/
wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); //背景ブラシ
wc.lpszMenuName = NULL; //メニュー名
wc.lpszClassName = szClassName; //クラス名
/* wc.hIconSm = (HICON)LoadImage(NULL, //小さいアイコン
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON, 0, 0,
LR_DEFAULTSIZE | LR_SHARED);*/
return (RegisterClassEx(&wc));
}
//ウィンドウの生成
BOOL InitInstance(HINSTANCE hInst, int nCmdShow)
{
HWND hwnd;
hwnd = CreateWindow(szClassName, //クラス名
TEXT("Sample Window Show!!"), //ウィンドウ名
WS_OVERLAPPEDWINDOW, //ウィンドウスタイル
CW_USEDEFAULT, //x位置
CW_USEDEFAULT, //y位置
CW_USEDEFAULT, //ウィンドウ幅
CW_USEDEFAULT, //ウィンドウ高さ
NULL, //親ウィンドウのハンドル,親の時はNULL
NULL, //メニューハンドル,NULL
hInst, //インスタンスハンドル
// NULL, //ウィンドウ作成データ
NULL
);
if (!hwnd)
return FALSE;
ShowWindow(hwnd, nCmdShow); //ウィンドウの表示状態を設定
UpdateWindow(hwnd);
return TRUE;
}
//ウィンドウプロシージャ
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
PAINTSTRUCT ps;
HDC hdc, hMdc;
HBITMAP hbmp;
BITMAP bmp_info;
int w, h;
switch (msg)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
// hbmp = LoadBitmap(hInst, TEXT("BMP"));
hbmp = LoadBitmap(GetModuleHandle(NULL), TEXT("BMP"));
GetObject(hbmp, (int)sizeof(BITMAP), &bmp_info);
hMdc = CreateCompatibleDC(hdc);
SelectObject(hMdc, hbmp);
w = bmp_info.bmWidth;
h = bmp_info.bmHeight;
BitBlt(hdc, 0, 0, w, h, hMdc, 0, 0, SRCCOPY);
StretchBlt(hdc, w, 0, w * 2, h * 2,
hMdc, 0, 0, w, h, SRCCOPY);
DeleteDC(hMdc);
DeleteObject(hbmp);
EndPaint(hwnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hwnd, msg, wp, lp));
}
return 0;
}