#include <windows.h>
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 wndclass ; //窗口类别结构
wndclass.style = CS_HREDRAW | CS_VREDRAW ; //设置窗体风格
wndclass.lpfnWndProc = WndProc ; //指定窗口消息处理程序
wndclass.cbClsExtra = 0 ; //
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ; //执行实体句柄
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;//加载图标
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;//加载鼠标图标
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //设置窗口背景(颜色)
wndclass.lpszMenuName = NULL ; //窗体菜单名
wndclass.lpszClassName = szAppName ; //窗体名
if (!RegisterClass (&wndclass)) //登记窗体
{
MessageBox ( NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow( szAppName,//windows classname
TEXT ("The Hello Progame"), //window caption
WS_OVERLAPPEDWINDOW, //window style
CW_USEDEFAULT, //inital x position
CW_USEDEFAULT, //inital y position
CW_USEDEFAULT, //inital x size
CW_USEDEFAULT, //inital y size
NULL, //parent windows hadle
NULL, //windows menu handle
hInstance, //program instance handle
NULL) ; //creation paramenters
ShowWindow(hwnd, iCmdShow) ; //show the window
UpdateWindow(hwnd) ; //Update window itself
while (GetMessage (&msg, NULL, 0, 0)) //Get a Message from window's message manage
{
TranslateMessage (&msg) ; //Translate some message from keyboard
DispatchMessage (&msg) ; //Send massage to massage process program
}
return msg.wParam;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc; //device contest handle
PAINTSTRUCT ps; //print struct
RECT rect ; //rect struct
switch(message)
{
case WM_CREATE: //if the window create,this function will accept this massage
//(WM_CREATE)
//PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
return 0;
case WM_PAINT: //window redraw
hdc = BeginPaint (hwnd, &ps) ; //begin paint window
GetClientRect (hwnd, &rect); //get rect of client
DrawText (hdc, TEXT ("Hello, Windows XP!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps); //draw the text in centre of window
return 0 ;
case WM_DESTROY: //when the window destroy ,this function will accept this massage,then process it:
PostQuitMessage (0); //Quit the program
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam);
}