男人.No boy no cry

彪悍的人生,不需要解釋...

导航

VC++ Lesson1 简单的窗口- -

Posted on 2005-10-09 14:58  Piccolo Goo  阅读(310)  评论(0)    收藏  举报

 

                                      

#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;
}