(win32)main&proc

#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值