未加星标

计算机编程基础之Windows SDK编程基本框架

字体大小 | |
[系统(windows) 所属分类 系统(windows) | 发布者 店小二04 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏
计算机编程基础之windows SDK编程基本框架

一点号洛丽塔的技术库7小时前

这一篇文章是北大青鸟广州新嘉华学校为大家搜集的计算机编程基础之Windows SDK编程基本框架的知识,希望对大家有所帮助。Windows SDK这种编程相较于MFC编程具有更加灵活和强大的控制,能实现一些MFC不易实现甚至难以实现的功能。所有的Windows SDK编程都有一个类似的框架,本文就说说这个框架,Windows程序设计的框架分为“三部曲”:

注册窗口类 注册窗口类的API函数是RegisterClass或者RegisterClassEx,这两个函数参数区别不大,具体看MSDN,这里以RegisterClass为例。函数原型如下:参数WNDCLASS定义如下:
计算机编程基础之Windows SDK编程基本框架
结构成员说明如下:style:指示类窗口类的风格,比如指定水平、垂直重画;是否显示关闭窗口等。lpfnWndProc:窗口过程函数指针,这个是最重要的参数,该参数指定消息执行的处理函数入口。cbClsExtra:类扩展数据大小,一般不用。cbWndExtra:窗口扩展数据大小,一般不用。hInstance:应用程序实例,这个参数会从WinMain函数传过来。hIcon:应用程序的图标句柄。hCursor:应用程序的光标句柄。hbrBackground:窗口的背景画刷。Windows预定义了一些纯色画刷,如COLOR_GRAYTEXT、COLOR_BACKGROUND、COLOR_ACTIVECAPTION等等。lpszMenuName:菜单名,该名以资源的方式存在。lpszClassName:窗口类的名字,这个必须指定且不能重复,否则会失败,除非你需要重复的,否则尽量避免。 创建主窗口并显示
计算机编程基础之Windows SDK编程基本框架
参数如下:lpClassName:类名,就是WNDCLASS结构中的 lpszClassName。lpWindowName:本窗口的名字,一个字符串。dwStyle:窗口风格,比如是否有边框、标题框、子窗口、水平垂直滚动条、弹出、重叠性等,具体看MSDN,很多特殊效果都是用这个风格指定的,比如类似迅雷的悬浮窗等。x,y, nWidth, nHeight:指定窗口相对于父窗口的位置和宽高。hWndParent:指定父窗口句柄,如果该窗口没有父窗口,则为NULL,比如应用程序主窗口。hMenu:菜单句柄。hInstance:应用程序实例句柄,跟WNDCLASS中的hInstance一样。lpParam:指向一个CREATESTRUCT结构的参数。显示并刷新窗口的API函数如下,参数都有对应的窗口句柄:ShowWindow(hWnd, iCmdShow);UpdateWindow(hWnd); 进入消息循环 这个过程基本是一个固定的格式:该过程从系统消息队列里面获取一个消息,然后翻译虚拟按键成字符消息,并派送到窗口消息队列中,等待消息处理函数处理。如果获取到的消息为WM_QUIT,则返回0,于是就退出循环。通过上面的三部曲,我们就创建了windows程序设计的框架,几乎任何的windows程序都可以在这个框架基础上衍生出来。下面我们给出完整的框架代码:
计算机编程基础之Windows SDK编程基本框架
计算机编程基础之Windows SDK编程基本框架
在消息处理函数中,根据消息类型执行不同的处理,比如WM_CREATE可以处理一些创建的工作;WM_PAINT可以处理画图,显示文本;WM_DESTROY处理在窗口被销毁时的事件;当然还有很多其他的消息事件,根据情况我们做出相应的处理。
计算机编程基础之Windows SDK编程基本框架
该框架程序运行起来就是一个空空的窗口,没有任何其他内容。虽然整个框架简单,但是对于windows程序设计来说非常重要。如果你想学习windows编程,就需要把每一个部分都真正理解,这样就算基本入门windows编程了,剩下的就是如何根据需求丰富这个框架使之成为一个“有用”的程序。

欢迎关注北大青鸟广州新嘉华微信公众号 “jhzyjy”了解跟多,咨询QQ群274809462。

本文系统(windows)相关术语:三级网络技术 计算机三级网络技术 网络技术基础 计算机网络技术

主题: WindowsSDN迅雷微信北大数据北大青鸟TIUC广州
分页:12
转载请注明
本文标题:计算机编程基础之Windows SDK编程基本框架
本站链接:http://www.codesec.net/view/479919.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(windows) | 评论(0) | 阅读(46)