#include <windows.h>
#include <stdio.h>
//窗口进程说明
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
//主函数
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // pointer to command line
int nCmdShow // show state of window
)
{
WNDCLASS wndcls; //定义一个WNDCLASS类的对象
wndcls.cbClsExtra=0; //类的附加参数
wndcls.cbWndExtra=0; //窗口的附加参数
wndcls.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH); //窗口背景
wndcls.hCursor=LoadCursor(NULL,IDC_ARROW); //鼠标类型
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); //光标类型
wndcls.hInstance=hInstance; //应用程序
wndcls.lpfnWndProc=WinSunProc; //窗口进程
wndcls.lpszClassName="LvSong"; //类的名字
wndcls.lpszMenuName=NULL; //定义窗口菜单
wndcls.style=CS_HREDRAW | CS_VREDRAW; //窗口的类型
RegisterClass(&wndcls); //注册窗口类
HWND hwnd; //定义一个句柄
hwnd=CreateWindow(wndcls.lpszClassName,"VC++学习",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL); //创建一个窗口
ShowWindow(hwnd,SW_SHOWNORMAL); //显示窗口
UpdateWindow(hwnd); //窗口重绘
MSG msg; //定义消息
while(GetMessage(&msg,NULL,0,0)) //消息循环 保证窗口存在
{
TranslateMessage(&msg); //传输消息
DispatchMessage(&msg); //
}
return 0;
}
//窗口进程描述
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg) //判断消息
{
case WM_CHAR: //按键消息
char szChar[20];
sprintf(szChar,"char is %d",wParam); //获得按键并保存在字符串里
MessageBox(hwnd,szChar,"检查按键",0); //弹出消息框 0==MB_OK
break;
case WM_LBUTTONDOWN: //鼠标左键
MessageBox(hwnd,"mouse clicked","鼠标左键点击",0);
HDC hdc; //定义一个DC的句柄
hdc=GetDC(hwnd); //获得句柄
TextOut(hdc,0,50,"鼠标左键被点击",strlen("鼠标左键被点击")); //打印文字
ReleaseDC(hwnd,hdc); //释放DC
break;
case WM_PAINT: //窗口背景
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"VC++ Lesson1",strlen("VC++ Lesson1"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE: //关闭窗口
if(IDYES==MessageBox(hwnd,"是否真的结束?","VC++学习",MB_YESNO))
{
DestroyWindow(hwnd); //销毁窗口 传递一个WM_DESTROY消息
}
break;
case WM_DESTROY: //销毁消息
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam); //默认窗口进程
}
return 0;
}
浙公网安备 33010602011771号