(win32)main&proc

来源:互联网 发布:c语言生成Excel文件 编辑:程序博客网 时间:2024/05/17 09:28
#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance,//实例句柄                    HINSTANCE hPrevInstance,//应用程序的先前实例的句柄;对于一个32位程序,该参数总为NULL                    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 ; //程序类名     //检测是否是NT之类的系统     if (!RegisterClass (&wndclass))//注册一个窗口类别     {          MessageBox (NULL, TEXT ("This program requires Windows NT!"),  //显示消息框                      szAppName, MB_ICONERROR) ;          return 0 ;     }                    //基于窗口类创建一个窗口     hwnd = CreateWindow (szAppName,                  //窗口类名称                            TEXT ("填充"), //窗口标题                          WS_OVERLAPPEDWINDOW,        //窗口风格                          CW_USEDEFAULT,              //初始X坐标                          CW_USEDEFAULT,              //初始y坐标                          CW_USEDEFAULT,              //初始x尺寸                          CW_USEDEFAULT,              //初始y尺寸                          NULL,                       //父窗口句柄                          NULL,                       //窗口菜单句柄                          hInstance,                  //程序实例句柄                          NULL) ;                     //创建参数     ShowWindow (hwnd, iCmdShow) ; //显示窗口     UpdateWindow (hwnd) ;//优先WM_PAINT绘制窗口     //从消息队列获取消息      while (GetMessage (&msg, NULL, 0, 0))     {          TranslateMessage (&msg) ;//翻译一些键盘消息          DispatchMessage (&msg) ;//将消息发送给窗口过程     }     return msg.wParam ;}LRESULT CALLBACK WndProc (HWND hwnd, //窗口句柄                          UINT message, //消息ID                          WPARAM wParam, //消息数据                          LPARAM lParam)//消息数据{     HDC         hdc ;//设备环境句柄     PAINTSTRUCT ps ;//绘图信息结构体     RECT        rect ;//矩形结构体     //处理消息ID     switch (message)     {          case WM_PAINT:              hdc = BeginPaint (hwnd, &ps) ;//窗口绘制开始              GetClientRect (hwnd, &rect) ; //获取窗口客户区的尺寸              EndPaint (hwnd, &ps) ; //结束窗口绘制              return 0 ;          case WM_DESTROY:              PostQuitMessage (0) ;//将‘退出’消息插入消息队列              return 0 ;     }     return DefWindowProc (hwnd, message, wParam, lParam) ;//执行默认的消息处理}
0 0
原创粉丝点击