LRESULT CALLBACK WndProc (HWND, UINT,
WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT
("HelloWin") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wc ;
wc.style = CS_HREDRAW | CS_VREDRAW
;
wc.lpfnWndProc = WndProc ;
wc.cbClsExtra = 0 ;
wc.cbWndExtra = 0 ;
wc.hInstance = hInstance ;
wc.hIcon = LoadIcon (NULL,
IDI_APPLICATION) ;
wc.hCursor = LoadCursor (NULL, IDC_ARROW)
;
wc.hbrBackground = (HBRUSH) GetStockObject
(WHITE_BRUSH) ;
wc.lpszMenuName = NULL ;
wc.lpszClassName = szAppName ;
if (!RegisterClass
(&wc))
{
MessageBox (NULL, TEXT ("This program
requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, // window
class name
TEXT ("歡迎你的到來!"), // window
caption
WS_OVERLAPPEDWINDOW, // window
style
CW_USEDEFAULT, // initial x
position
CW_USEDEFAULT, // initial y
position
CW_USEDEFAULT, // initial x
size
CW_USEDEFAULT, // initial y
size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance
handle
NULL) ; // creation parameters
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0,
0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT
message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps)
;
GetClientRect (hwnd, &rect)
;
DrawText (hdc, TEXT ("你好,歡迎你來到VC之路!"), -1,
&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER)
;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message,
wParam, lParam) ;
}
1.填充WNDCLASS結構
2.RegisterClass 註冊視窗類別
3.CreateWindow建立視窗
4.ShowWindow 顯示視窗
5.UpDateWindow 更新視窗
6.while迴圈 GetMessage擷取訊息
7.TranslateMessage 翻譯鍵盤訊息
8.DisPatchMessage 發送訊息
9.視窗過程處理函數 DefWindowProc
DestroyWindow 摧毀視窗 PostQuitMessage 發送退出進程訊息 、ExitProcess退出進程