#include<windows.h>
//#pragama comment(lib,"WINMM.LIB")
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)
{
//注册视窗类别
static TCHAR szAppName[]=TEXT("HelloWin");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW|CS_VREDRAW; //每当视窗的水平方向大小(CS_HREDRAW)或者垂直方向大小(CS_VREDRAW)改变之後,视窗要完全重画
wndclass.lpfnWndProc = WndProc; //依据这个类别来建立的所有视窗所使用的视窗讯息处理程式的位址
wndclass.cbClsExtra=0; //用于在视窗类别结构中预留一些额外空间
wndclass.cbWndExtra=0; //用于在Windows内部保存的视窗结构中预留一些额外空间
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, //视窗类名
TEXT("The hello program"), //视窗标题
WS_OVERLAPPEDWINDOW, //视窗样式
CW_USEDEFAULT, //指定视窗左上角相对于荧幕左上角的初始位置
CW_USEDEFAULT,
CW_USEDEFAULT, //指定视窗的宽度和高度
CW_USEDEFAULT,
NULL, //最上层视窗,NULL为桌面视窗
NULL, //视窗功能表代号
hInstance, //程式执行实体代号
NULL //建立参数指标,用于存取稍后程式中可能引用到的资料
);
//显示视窗
//ShowWindow(hwnd,iCmdShow); //第二个参数用于确定最初如何在荧幕上显示视窗,是一般大小、最大化还是最小化
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
//讯息回圈
while(GetMessage(&msg,NULL,0,0)) //第二三四个参数为NULL或0,表示程式接收它自己建立的所有视窗的所有讯息
{
TranslateMessage(&msg); //将msg结构传给windows,进行一些键盘转换
DispatchMessage(&msg); //将msg结构回传给windows。
}
return msg.wParam;
}
//视窗讯息处理程式
//视窗讯息处理程式所接受的每个讯息均是一个数值来标识的,也就是传给视窗讯息处理程式的message参数。
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps; //包含一些视窗讯息处理程式,可以用来更新显示区域的内容
RECT rect;
switch(message)
{
/*case WM_MOVE:
PlaySound(TEXT("D://ZiLiao//Music//Music//soft music//Crazy.mp3"),NULL,SND_FILENAME|SND_ASYNC);
return 0;
case WM_SIZE:
PlaySound(TEXT("D://ZiLiao//Music//Music//soft music//Crazy.mp3"),NULL,SND_FILENAME|SND_ASYNC);
return 0;*/
case WM_CREATE:
PlaySound(TEXT("D://ZiLiao//Music//Music//soft music//Crazy.mp3"),NULL,SND_NOSTOP);
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);
}