ウィンドウ作成

#include <windows.h>
 
// ウィンドウプロシージャ
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
// メイン処理
int WINAPI WinMain(HINSTANCE hi, HINSTANCE, LPSTR, int)
{
	LPCTSTR lpszClassName = TEXT("MyWindow");
 
	// ウィンドウクラスデータ設定
	WNDCLASSEX	wc;					
	wc.cbSize			= sizeof(WNDCLASSEX);
	wc.style			= 0;
	wc.lpfnWndProc		= WndProc;
	wc.cbClsExtra		= 0;
	wc.cbWndExtra		= 0;
	wc.hInstance		= hi;
	wc.hIcon			= LoadIcon(NULL, IDI_APPLICATION);
	wc.hIconSm			= LoadIcon(NULL, IDI_WINLOGO); 
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName		= NULL;
	wc.lpszClassName	= lpszClassName;
 
	// ウィンドクラスの登録
	if(! RegisterClassEx(&wc)) {
		return 0;
	}
 
	// ウィンドウ生成
	CreateWindow(lpszClassName,
				 TEXT("MyWindow"),
				 WS_OVERLAPPEDWINDOW | WS_VISIBLE,
				 CW_USEDEFAULT, CW_USEDEFAULT,
				 CW_USEDEFAULT, CW_USEDEFAULT,
				 HWND_DESKTOP,
				 NULL,
				 hi,
				 NULL);
 
	// メッセージループ
	MSG msg;									
	while(GetMessage(&msg, NULL, 0, 0)){
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
 
	return (int)msg.wParam ;
}
 
// ウィンドウプロシージャ
LRESULT CALLBACK WndProc(HWND hwnd, UINT imsg, WPARAM wp, LPARAM lp)
{
	switch(imsg){
 
	case WM_PAINT:
	{
		PAINTSTRUCT ps;
		TCHAR *p = TEXT("hello Windows");
 
		BeginPaint(hwnd, &ps);
		TextOut(ps.hdc, 10, 10, p, (int)wcslen(p));
		EndPaint(hwnd, &ps);
		break;
	}
	case WM_DESTROY:
		// メッセージループを終了させる
		PostQuitMessage(0);
		break;
 
	default:					
		return DefWindowProc( hwnd, imsg, wp, lp );
	}
 
	return 0;
}
最終更新:2008年12月13日 20:15
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。