雛形のソース
//------------------------------------------------------------------------------
//
//==============================================================================
// 新規作成日:
// 最終更新日:
//------------------------------------------------------------------------------
#include <tchar.h>
#include <Windows.h>
//------------------------------------------------
// break付きのキーワード
//------------------------------------------------
#define CASE break;case
#define DEFAULT break;default
//------------------------------------------------
// ウインドウ・プロシージャの関数
//------------------------------------------------
extern LRESULT CALLBACK mainWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
switch ( uMsg ){
CASE WM_CREATE:
{
HINSTANCE hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
LPVOID lpParam = ((LPCREATESTRUCT)lParam)->lpCreateParams;
}
CASE WM_CLOSE:
DestroyWindow( hWnd );
CASE WM_DESTROY:
PostQuitMessage( 0 );
CASE WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDC;
hDC = BeginPaint( hWnd, &ps );
EndPaint( hWnd, &ps );
}
CASE WM_ERASEBKGND:
return 1; /* 何も処理しない⇒塗り潰した */
DEFAULT:return DefWindowProc( hWnd, uMsg, wParam, lParam );
}
return 0;
}
//------------------------------------------------
// ウインドウ・クラスの登録
//------------------------------------------------
static ATOM funcWindowClass( HINSTANCE hInstance, LPCTSTR lpClassName )
{
WNDCLASSEX wcex = { 0 };
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = (CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS);
wcex.lpfnWndProc = mainWindowProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = apiLoadIcon( NULL, IDI_APPLICATION );
wcex.hIconSm = apiLoadIcon( NULL, IDI_APPLICATION );
wcex.hCursor = apiLoadCursor( NULL, IDC_ARROW );
wcex.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH );
wcex.lpszMenuName = NULL;
wcex.lpszClassName = lpClassName;
return RegisterClassEx( &wcex );
}
//------------------------------------------------
// ウインドウの作成
//------------------------------------------------
static HWND funcCreateWindow( HINSTANCE hInstance, LPCTSTR lpClassName, LPCTSTR lpTitleName, int nCmdShow )
{
HWND hWnd = CreateWindowEx(
0, // 拡張ウインドウ・スタイル
lpClassName, // クラス名
lpTitleName, // タイトル名
WS_OVERLAPPEDWINDOW, // ウインドウ・スタイル
CW_USEDEFAULT, // 横座標
CW_USEDEFAULT, // 縦座標
CW_USEDEFAULT, // 横幅
CW_USEDEFAULT, // 高さ
NULL, // 親ウインドウのハンドル
NULL, // メニューのハンドル
hInstance, // インスタンスのハンドル
NULL ); // ウインドウ作成のデータ
if ( hWnd != NULL ){
ShowWindow( hWnd, nCmdShow );
UpdateWindow( hWnd );
}
return hWnd;
}
//------------------------------------------------
// メイン関数
//------------------------------------------------
extern int WINAPI _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
{
LPCTSTR lpClassName = TEXT("XXXX_WndClass");
LPCTSTR lpTitleName = TEXT("キャプション");
MSG Msg;
if ( funcWindowClass(hInstance,lpClassName) == 0 ){
return -1;
}
if ( funcCreateWindow(hInstance,lpClassName,lpTitleName,nCmdShow) == NULL ){
return -2;
}
while ( GetMessage(&Msg,NULL,0,0) > 0 ){
TranslateMessage( &Msg );
DispatchMessage( &Msg );
}
UNREFERENCED_PARAMETER( hPrevInstance );
UNREFERENCED_PARAMETER( lpCmdLine );
return Msg.wParam;
}
//------------------------------------------------------------------------------
// End of FileName.cpp
//------------------------------------------------------------------------------
関連記事