利用win32创建窗口函数,主要操作步骤为:

1、设计一个窗口类
2、注册窗口类
3、创建窗口
4、显示及窗口更新
5、消息循环
6、窗口过程函数
 
(1)设计一个窗口类
设计窗口类,这样的类型已经被windows定义好了,我们只需要像选择题一样填满定义好的结构体(WNDCLASS)即可。
首先有两个一般设为0的选项:cbClsExtra和cbWndExtra,这两个是类附加内存和窗口附加内存。
hbrBackground指定窗口类的背景画刷句柄。可以用来指定一个画刷的句柄,也可以指定一个标准的系统颜色值。
hCursor指定窗口类的光标句柄
hIcon指定窗口类的图标句柄
hInstance指定包含窗口过程程序的程序的实例句柄
lpfnWndProc是一个函数指针,指向窗口过程函数
lpszClassName指定窗口类的名字
lpszMenuName指定菜单资源的名字
style指定窗口的样式
 
(2)注册窗口类
RegisterClass( xxx )里面的参数为指向窗口WNDCLASS的指针
让操作系统知道这一类型的窗口相关信息
 
(3)创建窗口
hwnd = CreateWindow(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParant,hMenu,hInstance,lpParam)
lpClassName指定窗口类的名称,即窗口类中的lpszClassName
lpWindowName指定窗口的名字
dwStyle指定创建的窗口样式,主要是窗口显示些什么东西
x,y,nWidth,nHeight左上角坐标,长、宽
hWndParant指定被创建窗口的父窗口句柄
hMenu指定窗口菜单的句柄
hInstance指定窗口所属的应用程序实例的句柄
lpParam多数窗口将这个设为NULL
 
(4)显示及更新
ShowWindow(hwnd,窗口显示状态);
UpdateWindow(hwnd);
 
(5)消息循环
创建、显示、更新窗口之后,需要有一个消息循环,不断的从消息队列中读取消息。
GetMessage( lpMsg , hWnd , wMsgFilterMin, wMsgFilterMax)
lpMsg指向一个消息结构体(MSG)
hWnd指定接收哪一个窗口的消息,通常设为NULL,接收属于调用线程所有窗口的窗口消息
wMsgFilterMin,wMsgFilterMax指定要获取的消息最小值和最大值,通常设为0
GetMessage函数对于WM_QUIT消息,返回0
TranslateMessage和DispatchMessage对收到的消息进一步处理
 
(6)窗口过程函数
用于处理发送给窗口的消息
 
 
这一章主要通过一个win32编程的例子,讲述了windows程序设计,是一种交互式的、事件驱动的程序设计模式,基于消息的。
 
详细内容,参考VC++深入讲解这本书吧

本节程序

 
 

最新文章

  1. 微信小程序二维码推广统计
  2. [Linux]I/O多路复用和epoll
  3. 让Fiddler 直接抓取java程序的方法
  4. Python语言特性之4:类变量和实例变量
  5. SPOJ GSS1 静态区间求解最大子段和
  6. php利用zookeeper作dispatcher服务器
  7. RabbitMQ消息队列(一): Detailed Introduction 详细介绍(转)
  8. HOG(方向梯度直方图)
  9. ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录
  10. .net白盒测试
  11. Linux0.11 中对地址的管理
  12. Netty_TCP拆包粘包解决方案
  13. error LNK1169 找到一个或多个多重定义的符号的解决方法
  14. 可空类型(Nullable)
  15. mybatis总结之一
  16. SQL语句的优化方法
  17. Tarjan缩点求入度为零的点的个数问题
  18. impala jdbc驱动执行impala sql的一个坑(不支持多行sql)
  19. JavaScript裸体识别技术
  20. [转载]ORACLE EXP/IMP

热门文章

  1. MapReduce job.setNumReduceTasks(0)思考
  2. 用Windows PowerShell 控制管理 Microsoft Office 365
  3. weex环境搭建
  4. 10天学会phpWeChat——第一天:核心框架的目录结构
  5. asmlib
  6. DataSet,DataTable与DataRow的复制方法
  7. Javascript模式(第一章简介)------读书笔记
  8. 显示intent和隐示intent有什么区别
  9. MyBatis学习(三)、动态SQL语句
  10. Hibernate5.2之反向工程