windows窗体初始代码注释

 

WinMain
   
     
HELLOWIN.C

/* ------------------------------------------------------------------------

HELLOWIN.C -- Displays "Hello, Windows 98!" in client area

(c) Charles Petzold, 1998

-----------------------------------------------------------------------
*/

#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 ; // 使用或运算结合了两个窗口类别样式标识符, CS_HREDROW 是水平方向 ,CS_VredRow是垂直方向

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.lpszMenuNam
= NULL ; // 窗口类别菜单

wndclass.lpszClassName
= szAppName ; // 窗口消息处理程序的名称


if ( ! RegisterClass ( & wndclass))

{

MessageBox ( NULL, TEXT (
" This program requires Windows NT! " ),

szAppName, MB_ICONERROR) ;

return 0 ;

}

hwnd
= CreateWindow( szAppName, // window class name

TEXT (
" The Hello Program " ), // window caption

WS_OVERLAPPEDWINDOW,
// window style

CW_USEDEFAULT,
// initial x position 左上角x

CW_USEDEFAULT,
// initial y position 左上角y

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_CREATE:

PlaySound (TEXT (
" hellowin.wav " ), NULL, SND_FILENAME | SND_ASYNC) ;

return 0 ;


case WM_PAINT:

hdc
= BeginPaint (hwnd, & ps) ;



GetClientRect (hwnd,
& rect) ;



DrawText (hdc, TEXT (
" Hello, Windows 98! " ), - 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) ;

}

 

你可能感兴趣的:(windows)