代码
/*------------------------------------------------------------------------
   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 ;
WNDCLAS 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.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
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, 00))
     {
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) ;
}

 

 

 

  • LoadIcon 载入图示供程式使用。
     
  • LoadCursor 载入滑鼠游标供程式使用。
     
  • GetStockObject 取得一个图形物件(在这个例子中,是取得绘制视窗背景的画刷物件)。
     
  • RegisterClass 为程式视窗注册视窗类别。
     
  • MessageBox 显示讯息方块。
     
  • CreateWindow 根据视窗类别建立一个视窗。
     
  • ShowWindow 在萤幕上显示视窗。
     
  • UpdateWindow 指示视窗自我更新。
     
  • GetMessage 从讯息伫列中取得讯息。
     
  • TranslateMessage 转译某些键盘讯息。
     
  • DispatchMessage 将讯息发送给视窗讯息处理程式。
     
  • PlaySound 播放一个音效档案。
     
  • BeginPaint 开始绘制视窗。
     
  • GetClientRect 取得视窗显示区域的大小。
     
  • DrawText 显示字串。
     
  • EndPaint 结束绘制视窗。
     
  • PostQuitMessage 在讯息伫列中插入一个「退出程式」讯息。
     
  • DefWindowProc 执行内定的讯息处理。

     

  • posted on 2010-08-21 20:19  arbin98  阅读(1686)  评论(0编辑  收藏  举报