利用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++深入讲解这本书吧

本节程序

 
 

win32创建窗口函数(windows程序内部运行机制)的更多相关文章

  1. windows程序内部运行机制

    Windows程序内部运行机制 2007-10-21 19:52 1010人阅读 评论(0) 收藏 举报 windowsvc++applicationcallbackwinapistructure W ...

  2. 1、win32创建窗口函数(windows程序内部运行机制)

    利用win32创建窗口函数,主要操作步骤为: 1.设计一个窗口类 2.注册窗口类 3.创建窗口 4.显示及窗口更新 5.消息循环 6.窗口过程函数   (1)设计一个窗口类 设计窗口类,这样的类型已经 ...

  3. Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html

    一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...

  4. 深入浅出话VC++(1)——Windows程序内部运行机制

    一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...

  5. 第1章 Windows程序内部运行机制

    参考: https://blog.csdn.net/u014162133/article/details/46573873 1.Windows API与Win32 SDK 操作系统提供了各种方便开发W ...

  6. 【vc】1_Windows程序内部运行机制

    创建一个Win32应用程序步骤: 1.编写WinMain函数; 2.创建窗口(步骤如下): a.设计(一个)窗口类(WNDCLASS) b.注册(该)窗口类. c.创建窗口. d.显示并更新窗口. 3 ...

  7. VC学习笔记: 1. Window程序内部运行机制

    0. 内容结构 API与SDK 窗口与句柄 消息与消息队列 WinMain函数 1. API与SDK 这里 API是指由Windows操作系统提供给应用程序的编程接口: Windows系统提供的API ...

  8. Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作

    Oracle 远程访问配置   服务端配置 如果不想自己写,可以通过 Net Manager 来配置. 以下配置文件中的 localhost 改为 ip 地址,否则,远程不能访问. 1.网络监听配置 ...

  9. 深入理解ASP.NET的内部运行机制(转)

    WebForms和WebServices作为.NET平台构建Web程序的两大利器,以其开发简单.易于部署的特点得到了广泛的应用,但殊不知微软公司在背后为我们做了大量的基础性工作,以至于我们开发人员只需 ...

随机推荐

  1. Python练习-生成器-一个生成器被坑的体无完肤

    代码如下,尽可能独立阅读: # 编辑者:闫龙 from urllib.request import urlopen #导入一个包,这就是egon留的一个坑 def get(url):#这是为了保证题目 ...

  2. 【驱动】USB驱动·入门【转】

    转自:http://www.cnblogs.com/lcw/p/3159371.html Preface USB是目前最流行的系统总线之一.随着计算机周围硬件的不断扩展,各种设备使用不同的总线接口,导 ...

  3. haproxy代理https配置方法【转】

    记得在之前的一篇文章中介绍了nginx反向代理https的方法,今天这里介绍下haproxy代理https的方法: haproxy代理https有两种方式:1)haproxy服务器本身提供ssl证书, ...

  4. vim加密文件

    一.加密文件内容 vim gt-1.sh 输入:X 注意是大写的X 输入密码 然后,保存 再次访问,需要输入密码 如果输入密码错误,内容显示为乱码 用cat或more查看文件内容,显示为乱码:用vi重 ...

  5. java使用DOM操作XML

    XML DOM简介 XML DOM 是用于获取.更改.添加或删除 XML 元素的标准. XML 文档中的每个成分都是一个节点. DOM 是这样规定的: 整个文档是一个文档节点 每个 XML 标签是一个 ...

  6. Python版飞机大战

    前面学了java用java写了飞机大战这次学完python基础后写了个python版的飞机大战,有兴趣的可以看下. 父类是飞行物类是所有对象的父类,setting里面是需要加载的图片,你可以换称自己的 ...

  7. 前端打包工具之fis3的初级使用

    说到打包工具,大家都会想到webpack,我之前也接触过webpack,说实话个人觉得webpack上手容易,但是对于新手来说里面有太多坑,配置文件也不简单.于是乎,我转入了fis3阵营,发现fis3 ...

  8. Unix IPC之共享内存区(1)

    1 共享内存区 共享内存区是可用IPC形式中最快的,只有映射和解除映射需要进入内核的系统调用,映射后对共享内存区的访问和修改不再需要系统调用(内核只要负责好页表映射和处理页面故障即可),但通常需要同步 ...

  9. VFS,super_block,inode,dentry—结构体图解

    总结: VFS只存在于内存中,它在系统启动时被创建,系统关闭时注销. VFS的作用就是屏蔽各类文件系统的差异,给用户.应用程序.甚至Linux其他管理模块提供统一的接口集合. 管理VFS数据结构的组成 ...

  10. TypeScript 2 : 获取当前日期及前后范围日期【Array】

    前言 今天有个接口字段需求,要写一个今天及前几天的日期传过去: 在网上找了下都木有什么比较好的方案:就自己写了一个. 因为技术栈就是NG2+TS2+WEBPACK,这里的代码需要一定的TS2及ES6的 ...