Windows program design (Charles Petzold) HELLOWIN program implementation, petzoldhellowin
1/* -------------------------------------------------------------- 2 HELLOWIN. C -- DisPlays "Hello, Windows! "In client area 3 (c) Charles Petzold, 1998 4 -------------------------------------------------------------- */5 # include <windows. h> 6 lresult callback WndProc (HWND, UINT, WPARAM, LPARAM); 7 8 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPreVInstance, 9 PSTR szCmdLine, int iCmdShow) 10 {11 static TCHAR szAppName [] = TEXT ("HelloWin"); 12 HWND hwnd; 13 MSG msg; 14 WNDCLASS wndclass; 15 16 wndclass. Style = CS_HREDRAW | CS_VREDRAW; 17 wndclass. lpfnWndProc = WndProc; 18 wndclass. cbClsExtra = 0; 19 wndclass. cbWndExtra = 0; 20 wndclass. hInstance = hInstance; 21 wndclass. hIcon = LoadIcon (NULL, IDI_APPLICATION); 22 wndclass. hCursor = LoadCursor (NULL, IDC_ARROW); 23 wndclass. hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); 24 wndclass. lpszMenuName = NULL; 25 wndclass. lpszClassName = szAppName; 26 27 if (! RegisterClass (& wndclass) 28 {29 MessageBox (NULL, TEXT ("This progam requires Windows NT! "), 30 szAppName, MB_ICONERROR); 31 return 0; 32} 33 34 hwnd = CreateWindow (szAppName, // window class name35 TEXT (" The Hello Program "), // window caption36 rows, // window style37 CW_USEDEFAULT, // initial x position38 CW_USEDEFAULT, // initial y position39 CW_USEDEFAULT, // initial x size40 CW_USEDEFAULT, // initial y size41 NULL, // parent window handle42 NULL, // window menu handle43 hInstan Ce, // program instance44 NULL // creation parameters45); 46 ShowWindow (hwnd, iCmdShow); 47 UpdateWindow (hwnd); 48 49 while (GetMessage (& msg, NULL, 0, 0) 50 {51 TranslateMessage (& msg); 52 DispatchMessage (& msg); 53} 54 return msg. wParam; 55} 56 57 lresult callback WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 58 {59 HDC hdc; 60 PAINTSTRUCT ps; 61 RECT rect; 62 63 switch (message) 64 {65 case W M_CREATE: 66 // PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC); 67 return 0; 68 69 case WM_PAINT: 70 hdc = BeginPaint (hwnd, & ps); 71 GetClientRect (hwnd, & rect); 72 DrawText (hdc, TEXT ("Hello, windows! "),-1, & rect, 73 DT_SINGLELINE | DT_CENTER | DT_VCENTER); 74 EndPaint (hwnd, & ps); 75 return 0; 76 77 case WM_DESTROY: 78 PostQuitMessage (0); 79 return 0; 80} 81 return DefWindowProc (hwnd, message, wParam, lParam );HELLOWIN. c
Vs creates a new win32 application and adds the edited code file to the source file. Add "winmm. lib" (or comment out the PlaySound () function) to Project Properties> Add dependencies, compile and run the function, and view the result.