一个简单的Windows

 先要在vc中创建工程,以及源文件。
  step1:
 
 
step2:
 

step3:
     
然后就可以在WinMain文件中写入win32的主函数,以及窗口过程函数,完成简单的windows编程。
  1. #include <windows.h>
  2. #include <stdio.h>
  3. //定义窗口过程函数
  4. LRESULT CALLBACK WinProc(   //typedef LONG LRESULT
  5.      HWND hwnd,        //窗口句柄
  6.      UINT uMsg,        //消息ID
  7.      WPARAM wParam,    //第一个消息参数  typedef UINT WPARAM
  8.      LPARAM lParam     //第二个消息参数  typedef LONG LPARAM
  9.      );
  10. //win 主函数
  11. int WINAPI WinMain(HINSTANCE hInstance,        //当前实例句柄
  12.                    HINSTANCE hPrevInstance,    //前一实例句柄
  13.                    LPSTR lpCmdLine,            //命令行
  14.                    int nCmdShow)               //显示状态
  15. {
  16.   //创建一个窗口类,并初始化
  17.     WNDCLASS wndcls;
  18.     wndcls.cbClsExtra=0;                     //分配额外空间
  19.     wndcls.cbWndExtra=0;
  20.     wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
  21. //  wndcls.hCursor=LoadIcon(NULL,IDI_ERROR);
  22. wndcls.hCursor=NULL;
  23.     wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
  24.     wndcls.hInstance=hInstance;
  25.     wndcls.lpfnWndProc=WinProc;
  26.     wndcls.lpszClassName="Simplest"
  27.     wndcls.lpszMenuName=NULL;
  28.     wndcls.style=CS_HREDRAW |CS_VREDRAW;
  29.   //初始完后,向系统注册该对象,以后才能创建
  30.     RegisterClass(&wndcls);
  31.   
  32.   // 创建窗口,并定义一个窗口句柄来指向该窗口
  33.     HWND hwnd;
  34.     hwnd=CreateWindow("Simplest","J_F",WS_OVERLAPPEDWINDOW,0,0,600,600,NULL,NULL,hInstance,NULL);
  35.   
  36.   //显示以及刷新窗口
  37.     ShowWindow(hwnd,SW_SHOWNORMAL);
  38.     UpdateWindow(hwnd);
  39.   //定义消息结构体,开始接受消息
  40.     MSG  msg;
  41.     while(GetMessage(&msg,NULL,0,0))//MS_QUIT =0
  42.     {
  43.         TranslateMessage(&msg);
  44.         DispatchMessage(&msg);
  45.     }
  46.     return msg.wParam;
  47. }
  48. LRESULT CALLBACK WinProc(   //typedef LONG LRESULT
  49.      HWND hwnd,        //窗口句柄
  50.      UINT uMsg,        //消息ID
  51.      WPARAM wParam,    //第一个消息参数  typedef UINT WPARAM
  52.      LPARAM lParam     //第二个消息参数  typedef LONG LPARAM
  53.      )
  54. {
  55.     switch(uMsg)
  56.     {
  57.     case WM_CHAR:
  58.         {
  59.             char ch[20];
  60.             sprintf(ch,"char code is %d",wParam);
  61.             MessageBox(hwnd,ch,"char",0);
  62.             break;
  63.         }
  64.     case WM_LBUTTONDOWN:
  65.         MessageBox(hwnd,"mouse clicked","message",0); 
  66.         HDC hdc;
  67.         hdc=GetDC(hwnd);
  68.         TextOut(hdc,0,50,"J_F",strlen("J_F"));
  69.         break;
  70.     case WM_PAINT:
  71.         HDC Hdc;
  72.         PAINTSTRUCT ps;
  73.         Hdc=BeginPaint(hwnd,&ps);
  74.         TextOut(Hdc,0,0,"J_Factory",strlen("J_Factory"));
  75.         EndPaint(hwnd,&ps);
  76.         break;
  77.     case WM_CLOSE:
  78.         if(IDYES==MessageBox(hwnd,"is true to close","message",MB_YESNO) )
  79.         {
  80.             DestroyWindow(hwnd);
  81.         }
  82.         break
  83.     ///少了这一句,进程不会结束
  84.     case WM_DESTROY:
  85.         PostQuitMessage(0);
  86.         break;
  87.     default:
  88.         return DefWindowProc(hwnd,uMsg,wParam,lParam);
  89.     }
  90.     return 0;
  91. }

  基于windows的编程,变量以及宏的定义很多,非常复杂,但MSDN里基本有所以相关的内容。
 
 
rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">






























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值