#include HWND gg_hWnd; HWND button1; HWND button2; LRESULT WINAPI WndProc(HWND,UINT,WPARAM,LPARAM); WPARAM StartMessageLoop(); void RegAndCreateButton1(HINSTANCE hInstance); void RegAndCreateButton2(HINSTANCE hInstance); INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wc; //RegisterWindow 1 wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL , IDI_APPLICATION); wc.hCursor = (HCURSOR)LoadCursor(NULL , IDC_ARROW); //Mouse Cursor //wc.hbrBackground = (HBRUSH)GetStockObject(COLOR_BACKGROUND + 22); //background window colour wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND + 1); //blue wc.lpszMenuName = NULL; wc.lpszClassName = "WinApp"; wc.hIconSm = NULL; RegisterClassEx(&wc); gg_hWnd = CreateWindowEx( NULL, "WinApp", "Basic Windows Application", WS_OVERLAPPEDWINDOW | WS_VISIBLE, //NULL, 100, 100, 648, 514, GetDesktopWindow(), NULL, hInstance, NULL ); ShowWindow(gg_hWnd , SW_NORMAL); RegAndCreateButton1(hInstance); RegAndCreateButton2(hInstance); INT result = StartMessageLoop(); return result; } LRESULT CALLBACK WndProc(HWND hWnd ,UINT msg , WPARAM wParam , LPARAM lParam) { switch(msg) { case WM_CREATE: return 0; case WM_DESTROY: PostQuitMessage(0); break; case WM_COMMAND: return DefWindowProc(hWnd , msg , wParam , lParam); } WPARAM StartMessageLoop() { MSG msg; while(1) { if(PeekMessage(&msg , NULL , 0 , 0 , PM_REMOVE)) { if(msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } else { UpdateWindow(gg_hWnd); UpdateWindow(gg_hWnd2); } } return msg.wParam; } void RegAndCreateButton1(HINSTANCE hInstance) { WNDCLASSEX wc; //RegisterWindow 1 wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL , IDI_APPLICATION); wc.hCursor = (HCURSOR)LoadCursor(NULL , IDC_ARROW); //Mouse Cursor wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND + 21); //background window colour wc.lpszMenuName = NULL; wc.lpszClassName = "WinApp"; wc.hIconSm = NULL; RegisterClassEx(&wc); Button1 = CreateWindowEx( NULL, "button", "button1", WS_VISIBLE | BS_PUSHBUTTON | WS_CHILD , //NULL, 10, 10, 80, 40, gg_hWnd, //child NULL, hInstance, NULL ); ShowWindow(Button1 , SW_NORMAL); } void RegAndCreateButton2(HINSTANCE hInstance) { WNDCLASSEX wc; //RegisterWindow 1 wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL , IDI_APPLICATION); wc.hCursor = (HCURSOR)LoadCursor(NULL , IDC_ARROW); //Mouse Cursor wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND + 21); //background window colour wc.lpszMenuName = NULL; wc.lpszClassName = "WinApp"; wc.hIconSm = NULL; RegisterClassEx(&wc); Button2 = CreateWindowEx( NULL, "button", "button2", WS_VISIBLE | BS_PUSHBUTTON | WS_CHILD , //NULL, 100, 100, 80, 40, gg_hWnd, //child NULL, hInstance, NULL ); ShowWindow(Button1 , SW_NORMAL); }