我在第四篇文章:一个相当简单的SDK程序 中讲到了通过调用MessageBoxAPI函数来弹出一个对话框,那你有没有想过,我们一句简单的代码背后所隐藏的细节是怎么的呢,那时候让你了解这些未免还早了些,不过现在时机到了,通过一些基本的API函数调用来实现一个自己的对话框其实也不是很难,那么这一篇文章就是这个目的。并顺带介绍一些基本API的应用,由于前面五篇文章的铺垫,我相信你对SDK的程序的大致结构和相关字符处理都有所了解了,所以在这篇文章中的这些知识点,我就不再多说,以免有些人觉得我实在太过啰嗦。实在疑惑的,可以参看前面的文章。
首先我先大概的列出我们为完成这个任务所要用到的一些API函数他
SetWindowText 设置窗口的标题
GetClientRect 得到窗口客户区的大小信息
GetWindowLongPtr 通过窗口句柄得到和窗口的相关联信息
CreateWindowEx 创建窗口
BeginPaint 得到窗口的设备句柄
EndPaint 释放窗口的设备句柄
DrawText 通过设备句柄在窗口上画出文字
好了,就这些函数,我们就能自己实现有一个确定按钮并在确定按钮正上方显示提示信息的简易的对话框了,不过这个对话框可是我们一句一句代码自己实现的哟~~还是比较有成就感吧~
程序的大体框架呢还是我们上一篇文章中的框架,注册窗口类,创建一个主窗口,消息循环,窗口消息处理函数。不过要我们需要在窗口消息处理函数中添加一些代码来完成我们需要的功能。在什么地方添加呢? 上个程序,我们只处理WM_DESTROY这个消息。对于这个消息我不再做讲解,不懂的或者忘记了的可以自己MSDN或者看上一篇文章,这里我们要添加对两个消息的处理代码,首先是WM_CREATE,这个消息会在一个窗口被创建的时候被发送到窗口消息处理函数,如果一些事情需要在一个窗口刚被创建的时候执行,那么通过处理WM_CREATE最合适不过啦,代码如下:
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!