• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-08-06)  windows开发 专业技术 |   2 条评论  663 
    文章评分 4 次,平均分 5.0

    【Windows编程】系列第八篇:创建通用对话框

    上一篇我们学习了菜单的基本编程,本篇来了解一下通用对话框的使用。Windows系统之所以是目前最流行的桌面系统,也是因为Windows有一套标准化,统一友好的交互界面,比如菜单、工具栏、状态栏以及各个控件。当然除了这些单独的控件之外,对于像文件打开、保存对话框,字体对话,颜色对话框等对于Windows本身会用到,在很多第三方的应用程序中也会用到。因此微软公司也早就清楚这种现实情况会存在,所以Windows把这种常见的公共对话就做了统一的接口函数,供Windows自己和第三方开发者使用。

    Windows提供的公用对话框在不同的版本有所不一样,但常见的公用对话框有:颜色选择对话框、打开文件对话框、保存文件对话框、字体选择对话框、查找对话框、替换对话框、打印对话框以及打印设置对话框等。

    本篇以最常见的文件打开/保存对话框、字体对话框、颜色对话框为例,来学习如何创建这些对话框,其他的对话框使用大同小异,且在MSDN上基本都有使用实例。

    要使用公用对话框函数,需要包含commdlg.h头文件,相关的数据结构和函数定义都在该头文件中定义。

    • 文件打开对话框

    文件打开对话框主要用于选择需要的文件,把选择的文件全路径名传给用户,至于取到文件全路径之后怎么操作完全是开发者自己决定。也就是说它提供了一个在电脑中选择任何文件的公共操作接口。API函数定义如下:

    参数lpofn的定义如下:

     

    该接口定义的各个参数成员请参考MSDN的详细解释,这里我们最常用到的几项如下:

    lpstrFilter:该参数用于设置打开或保存对话的文件格式过滤,比如下图中的文件过滤情景,相信所有的读者朋友都见过:

    【Windows编程】系列第八篇:创建通用对话框

    lpstrFile:该参数用于保存选择结束后的选择文件。

    nMaxFile:该参数指出上面用于保存结果文件的buffer字符长度。

    Flags:该参数最常见用于设置是否可以多选,其他请查看MSDN。

    • 文件保存对话框

    文件保存对话框跟文件打开对话几乎完全一样,参数相同。功能也是为用户保存文件时选择或新建文件名、保存路径进行选择的公共操作接口。API函数定义如下:

    该函数的参数与上面完全一样,只是有些不能在文件保存对话框函数中使用,保存文件时不能多选名字。

    • 颜色选择对话框

    该对话框函数提供统一接口用于选择颜色,API函数定义如下:

    参数lpcc最重要的参数:

    lpCustColors,它指向一个包含16个值的数组,该数组包含了对话框中自定义颜色的红、绿、蓝(RGB)值。如果用户修改这些颜色,系统将用新的颜色值更新这个数组。如果要在多个ChooseColor函数中保存这个新的数组,我们应该为该数组分配静态内存空间。

    rgbResult:该参数保存了选择的颜色值。

    • 字体选择对话框:

    该对话框函数用于浏览并选择字体,包括颜色。API函数定义如下:

    对话框函数运行结束后的字体在rgbColors参数中,我们可以用它来创建选择的字体。

    以上各个结构的其他成员请参考MSDN。

    下面我们以一个demo程序演示以上几种公共对话框的基本用法。

    以上demo运行后的文件选择对话框如下:

    【Windows编程】系列第八篇:创建通用对话框

    选择颜色对话框如下:

    【Windows编程】系列第八篇:创建通用对话框

    选择字体对话框如下:

    【Windows编程】系列第八篇:创建通用对话框

    在demo中选择三个对话框后,选择的文件、颜色和字体均画在窗口上:

    【Windows编程】系列第八篇:创建通用对话框

    以上只是演示了文件打开/保存、颜色选择和字体选择对话框,虽然只演示了最简单的功能,但也是最基本、最常用的功能,能满足不少应用需求,更多的函数及用法请参考MSDN,学会查MSDN是Windows平台上开发的必备基础。

    更多经验交流可以加入Windows编程讨论QQ群454398517

     

    关注微信公众平台:程序员互动联盟(coder_online),你可以第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序员互动联盟,开发人员自己的家。

    【Windows编程】系列第八篇:创建通用对话框

    转载请注明出处http://www.coderonline.net/?p=1670,谢谢合作!

     

    本文原始地址:http://www.coderonline.net/programming-windows-series-eighth-article-creating-a-common-dialog-box.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    否则保留追究法律责任的权利!

    关于

    发表评论

    表情 格式
    1. 先推!

      dt 评论达人 LV.2 3年前 (2015-08-12) [0] [0]
    2. 嗯,准备试试window的窗口编程,做个小应用

      ghost045 评论达人 LV.5 3年前 (2015-08-07) [0] [0]
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册