HELLOWIN程序

/*------------------------------------------------------------------------  
HELLOWIN.C -- Displays "Hello, Windows 98!" in client area  
(c) Charles Petzold, 1998  
-----------------------------------------------------------------------*/   
#include <windows.h>  
LRESULT CALLBACK  WndProc (HWND, UINT, WPARAM , LPARAM) ;  
//Defoe.Tu  tyysoft@yahoo.com.cn Windows 程序设计 PDF 美化版 
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, // 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, 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 ) ;  
//Defoe.Tu  tyysoft@yahoo.com.cn Windows 程序设计 PDF 美化版 

}  


HELLOWIN至少呼叫了18个Windows函数。下面以它们在HELLOWIN中出现的次序列出这些函
数以及各自的简明描述: 
LoadIcon  加载图标供程序使用。     
LoadCursor  加载鼠标光标供程序使用。     
GetStockObject  取得一个图形对象(在这个例子中,是取得绘制窗口背景的画刷对象)。   
RegisterClass  为程序窗口注册窗口类别。     
MessageBox  显示消息框。     
CreateWindow  根据窗口类别建立一个窗口。     
ShowWindow  在屏幕上显示窗口。     
UpdateWindow  指示窗口自我更新。 
    GetMessage  从消息队列中取得消息。     
TranslateMessage  转译某些键盘消息。     
DispatchMessage  将消息发送给窗口消息处理程序。     
PlaySound  播放一个声音文件。     
BeginPaint  开始绘制窗口。     
GetClientRect  取得窗口显示区域的大小。     
DrawText  显示字符串。     
EndPaint  结束绘制窗口。     
PostQuitMessage  在消息队列中插入一个「退出程序」消息。     
DefWindowProc  执行内定的消息处理。







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值