c/c++win 32学習の一つwindowウィンドウ開発基礎


c/c++win 32学習の一つwindowウィンドウ開発基礎
win 32学習内容まとめ
Windowsウィンドウの作成(カスタマイズ)
手順:1.登録ウィンドウクラス2.ウィンドウ3を作成する.ウィンドウ4を表示する.ウィンドウ5をリフレッシュする.メッセージ処理関数6.メッセージループ
#include 

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(
	HINSTANCE hInstance,
	HINSTANCE hParInstance,
	LPSTR lpCmdLine,
	int nCmd
	)
{
	//1.     
	WNDCLASSEXW wc;
	wc.cbSize = sizeof(WNDCLASSEX);				//  
	wc.style = CS_HREDRAW | CS_VREDRAW;			//  
	wc.lpfnWndProc = WndProc;					//      
	wc.hInstance = hInstance;			        //    
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);	//    
	wc.cbClsExtra = 0;							//      
	wc.cbWndExtra = 0;							//       
	wc.lpszClassName = L"firstWindow";			//  (       )
	wc.lpszMenuName = NULL;						//   
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);	//       
	wc.hIcon = NULL;							//    
	wc.hIconSm = NULL;							//   
	
	RegisterClassExW(&wc);
	
	//2.    
	HWND hWnd = CreateWindowExW(
		NULL,								//    
		wc.lpszClassName,					//  
		L"       ",					//    
		WS_OVERLAPPEDWINDOW,				//    
		200, 100,							//  
		600, 600,							//  
		NULL,								//     
		NULL,								//  
		wc.hInstance,						//      
		NULL								//  
		);

	if (!hWnd)
	{
		MessageBoxExW(NULL, L"     ", L"  ", MB_OK, 0);
	}
	//3.    
	ShowWindow(hWnd, nCmd);
	//4.    
	UpdateWindow(hWnd);
	//6.    
	MSG msg;
	BOOL bRet;
	while (true)
	{
		if (PeekMessageW(&msg, nullptr, 0, 0, false))
		{
			if ((bRet = GetMessage(&msg, nullptr, 0, 0)) != 0)//       ,  0,   ,   0
			{
				if (bRet == -1)
				{
					//    
				}
				else
				{
					TranslateMessage(&msg);		//    	      
					DispatchMessage(&msg);		//    
				}
			}
			else
			{
				break;
			}
		}
	}
	
	return 0;
}

//5.      
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_DESTROY:				//    
	{
		PostQuitMessage(0);			//    
		break;
	}
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return NULL;
}


その他のリンクディレクトリ
  • windowウィンドウ開発基礎
  • メッセージループ
  • 重要メッセージ
  • メニュー
  • GDI画図
  • その他のコントロール
  • ファイルアクション
  • メモリマッピング
  • プロセススレッド
  • スレッドスケジューリング
  • ライブラリ
  • ネットワークプログラミング