耍家学社

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

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) ;

}

 

posted on 2010-10-14 10:29  耍家  阅读(334)  评论(0编辑  收藏  举报