戻る

ウインドウを出すCのソースコード例

#include <windows.h>
#include <tchar.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

/* エントリポイント */
int WINAPI WinMain(
HINSTANCE hCurInst,
HINSTANCE hPrevInst,
LPSTR lpsCmdLine,
int nCmdShow)
{
HWND hWnd;
WNDCLASSEX wc;
MSG msg;
BOOL bRet;
/* ウィンドウクラスの定義 */
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hCurInst;
wc.hIcon = (HICON)LoadImage(
NULL,
IDI_APPLICATION,
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
wc.hCursor = (HCURSOR)LoadImage(
NULL,
IDC_ARROW,
IMAGE_CURSOR,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = _T("SampleClass");
wc.hIconSm = (HICON)LoadImage(
NULL,
IDI_APPLICATION,
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
/* ウィンドウクラスの登録 */
if(RegisterClassEx(&wc) == 0)
return FALSE;
/* ウィンドウの作成 */
hWnd = CreateWindow(
wc.lpszClassName,
_T("Window App Sample"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hCurInst,
NULL);
/* ウィンドウの表示 */
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
/* メッセージループ */
while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) {
if (bRet == -1)
break;
else {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
/* ウィンドウプロシージャ */
LRESULT CALLBACK WndProc(
HWND hWnd,
UINT msg,
WPARAM wp,
LPARAM lp)
{
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wp, lp);
}
return 0;
}

戻る