スケルトンコード (ストレート)
[index] [プレーン] [ストレート] [3大要素] [修正を要する箇所] [一行解説] [詳細]
[プレーン] のところの、関数 InitApp() と InitWnd() を展開して、かんすうを取り払い、必要な処理をストレートに並べたものです。処理内容は全く同質です。
とりはらった2つの関数の "プロトタイプ宣言" が削除されたほかは、メッセージループ、"WndProc" には変更はありません。
色分けは、次の
[3大要素] の説明に対応。// // program "basecode.cpp" // bcc32 -tW basecode.cpp #define _WIN32_WINNT 0x400 #define WINVER 0x400 #define _WIN32_IE 0x0501 //#define WIN32_LEAN_AND_MEAN #define STRICT #include <windows.h> #include <windowsx.h> #include <commctrl.h> #include <commdlg.h> LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ) ; HINSTANCE hAppInst ; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hInst_prev, LPSTR lpszCmdLine, int nCmdShow ) { BOOL ret ; MSG msg ; if ( ! hInst_prev ) { WNDCLASS wc ; wc.style = CS_HREDRAW | CS_VREDRAW ; wc.lpfnWndProc = WndProc ; wc.cbClsExtra = 0 ; wc.cbWndExtra = 0 ; wc.hInstance = hInstance ; wc.hIcon = ( HICON ) LoadIcon ( NULL, IDI_APPLICATION ) ; wc.hCursor = ( HCURSOR ) LoadCursor( NULL, IDC_ARROW ) ; wc.hbrBackground = ( HBRUSH ) GetStockObject( LTGRAY_BRUSH ) ; wc.lpszMenuName = "MYMENU" ; wc.lpszClassName = ( LPCTSTR ) "MyApp_Classification_1" ; hAppInst = hInstance ; if( ! RegisterClass( &wc )) return FALSE ; // 旧 InitApp() } { HWND hWnd ; hWnd = CreateWindow( (LPCTSTR) "MyApp_Classification_1", (LPCTSTR) "My Project", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT , CW_USEDEFAULT, CW_USEDEFAULT , NULL, NULL, hInstance, NULL ) ; if ( ! hWnd ) return FALSE ; // 旧 InitWnd() ShowWindow( hWnd, nCmdShow ) ; UpdateWindow( hWnd ) ; SetFocus( hWnd ) ; } while ( 0 != ( ret = GetMessage( &msg, NULL, 0, 0 ))) { if ( ret != -1 ) { TranslateMessage( &msg ) ; DispatchMessage( &msg ) ; } } return ( msg.wParam ) ; } LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_CREATE : break ; case WM_COMMAND : switch( LOWORD( wParam )) { default : return( DefWindowProc( hWnd, msg, wParam, lParam )) ; } break ; case WM_CLOSE : DestroyWindow( hWnd ) ; break ; case WM_DESTROY : PostQuitMessage( 0 ) ; break ; default : return( DefWindowProc( hWnd, msg, wParam, lParam )) ; } return 0L ; }
[level4] [トップ] [戻る]