windows sdk编程系列文章15 ---- 通用控件

windows sdk编程系列文章15 ---- 通用控件

ID:41037419

大小:48.50 KB

页数:8页

时间:2019-08-14

windows sdk编程系列文章15 ---- 通用控件_第1页
windows sdk编程系列文章15 ---- 通用控件_第2页
windows sdk编程系列文章15 ---- 通用控件_第3页
windows sdk编程系列文章15 ---- 通用控件_第4页
windows sdk编程系列文章15 ---- 通用控件_第5页
资源描述:

《windows sdk编程系列文章15 ---- 通用控件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、windowssdk编程系列文章----通用控件2008-04-1523:23本课中我们将学习什么是通用控件和如何使用它们。理论:WIN95相对于WIN3X有几个加强的用户界面控件。其实在WIN95正式发行前这些控件就在使用,譬如:状态条、工具条等。以前程序员要自己去编程使用它们,现在微软已经把它们包含到了WIN9X和WINNT中了。·Toolbar---工具条·Tooltip---提示文本·Statusbar---状态条·Propertysheet---属性页单·Propertypage---属性页·Treeview---树型视图·Listview---列表视图·Animation--

2、-动画·Draglist---能够处理Drag-Drop的列表框·Header---·Hot-key---热键·Imagelist---图象链表·Progressbar---进程状态条·Rightedit---·Tab---跳格表·Trackbar---跟踪条·Up-down---滚动条因为通用控件的数量非常多,把它们全部装入内存并注册它们是非常浪费内存的。除了“RTF文本编辑”控件外其他控件的可执行代码都放在comctl32.dll中,这样其他的应用程序就可以使用它们了。“RTF文本编辑”控件在richedXX.dll中,由于该控件非常的复杂,所以也比其它控件大。要加载comctl32

3、.dll可以在您的应用程序中调用函数InitCommonControls。InitCommonControls函数是动态链接库comctl32.dll中的一个函数,只要在您的程序中的任意地方引用了该函数就、会使得WINDOWS的程序加载器PELoader加载该库。函数InitCommonControls其实只有一条指令“ret”,它的唯一目的是为了使得在调用了个该函数的应用程序的可执行文件的PE头中的“引入”段中包含有comctl32.dll,这样无论什么时候该应用程序都会为您加载该库。所以真正初始化的工作是在该库的入口点处做的,在这里会注册所有的通用控件类,然后所有的通用控件就可以在这

4、些类上进行创建,这就象创建其它的子窗口控件一样。RTF文本编辑控件则不同。如果您要使用它,就必须调用LoadLibrary函数来动态加载,并调用FreeLibrary来动态地卸载。现在我们学习如何创建这些通用控件。您可以用资源编辑器把它们放到一个对话框中,或者您也可以自己调用相关的函数来手动创建它们。几乎所有的通用控件都是调用函数CreateWindowEx或CreateWindow来创建的,您只要在其中传递通用控件的类名即可。有一些通用控件有一些特别的创建函数,但是其实这些函数在内部都调用了CreateWindowEx,只是包装后的函数更方便使用而已。经过包装的函数有:·CreateT

5、oolbarEx·CreateStatusWindow·CreatePropertySheetPage·PropertySheet·ImageList_Create为了创建通用控件您必须要知道它们的类名,我们把类名列于如下:类名通用控件ToolbarWindow32Toolbartooltips_class32Tooltipmsctls_statusbar32StatusbarSysTreeView32TreeviewSysListView32ListviewSysAnimate32AnimationSysHeader32Headermsctls_hotkey32Hot-keymsctl

6、s_progress32ProgressbarRICHEDITRicheditmsctls_updown32Up-downSysTabControl32TabPropertysheets、propertypages和imagelist控件有它们自己的创建函数。Draglist其实是可以伸缩的listbox控件,所以它没有自己的类名。上面的类名是VC++的资源编辑器提供的,它们和Borland公司的WIN32API指南中提出的不一样,和Petzold的书《ProgrammingWindows95》也不一样。可以肯定的是我们上面列出的类名绝对准确。这些通用控件可以有通用的窗口类的一些风格,譬

7、如WS_CHILD等。它们当然还有其他的特殊风格,譬如树型视图控件就有TVS_XXXXX风格,列表控件就有LVS_xxxx风格。具体的最好查找有关的WIN32API函数指南。既然我们已经知道了如何创建一个通用控件,我们就可以讨论这些通用控件之间以及和它们的父窗口之间是如何通讯的了。不象子窗口控件,通用控件在某些状态发生变化时不通过发送WM_COMMAND而是发送WM_NOTIFY消息和父窗口通讯的。父窗口可以通过发送消息来控制窗口的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。