职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1549|回复: 2

谈VC控件的组合使用

[复制链接]
yoyo 发表于 2007-7-8 11:50 | 显示全部楼层 |阅读模式
Visual C++是一个基于windows平台的强大开发工具。它提供了大量的控件使程序员的工作变得简单而有效。控件是任何可视化开发工具的重要组成部分,使用它,可以很容易地编写具有windows标准界面风格的就用程序。但要使自己的程序界面丰富多彩,那就需要好好想想了,本文将介绍一种有效的方法——VC控件的组合使用。
例1:检查列表框
检查列表框在很多的安装程序中得到广泛使用,它的效果看起来是将一个检查框放入到一个列表框当中,比如win98安装附件程序时的窗口主体就是一个检查列表框,它的每一项由一行文本或一个小图标与前面一个检查框组成。下面就让我们来实现它。
实现思想:根据面向对象的方法,我们只需将一个检查列表框的类对象加入到欲含有检查列表框的窗口对象中,然后在窗口对象的初始化函数中绘制它。
具体步骤:
1.为你的应用程序添加一个对话框,ID值为IDD_MYDIALOUG,在“style”属性栏中将它的“owner draw”属性设为“Fixed”。
2.向该对话框中,加入一个列表框IDC_LBLISTDEMD
3.用Class wizard为列表框添加成员变量m_my_checkist,它的数据类型为CListBox。
4.找到添加的对话框的类定义处,将CListoBox类型改为CCheckListBox类型。
5.为对话框的WM_INITDIALOG消息添加消息处理函数,OnMylnlt并添加代码如下:
m_my_checklist.Addstring(_T(\"ITEM1\"));
m_my_checklist.Addstring(_T(\"ITEM2\"));
m_my_checklist.Addstring(_T(\"ITEM3\"));
m_my_checklist.SetCheckStyle(BS_AUTO3STATE);
6.在需要的地方添加自己的弹出对话框代码。
7.编译运行即可。
例2:工具条中加入组合框
工具条是windows应用程序中不可缺少的部分,它方便了用户的操作,为熟练用户节省了宝贵的时间,熟练运用它是很重要的,VC的应用程序向导对基于单文档和多文档的应用程序提供了工具条支持,不过不直接支持组合框控件,而在我们常用的软件中,比如word,其处理字体,改变大小、型号都可直接用工具条上的组合框实现,本处将介绍一种好的方法,在工具条中加入给合框控件。
实现思想:
1.在工具条上要加入组合框的位置加一个空按钮;
2.将组合框对象加入到工具条对象中;
3.在工具条的创建函数中绘制组合框;
4.为组合框添加字符串;
5.加入组合框的消息处理函数。
具体步骤:
1.生成一个单文档的应用程序,mytest在工具条的第3个位置加入一个空按钮,ID值为IDC_MYCOMBOX。
2.用class wizard生成一个工具条的类对象基类为CtooLbarCtrl,新类为CMyComboBar,在新类的定义处将基类由CtoolBarCtrl 改为CtoolBar,为新类添加成员变量。
ClomboBox m_mycombobox;
3.把CMainFrame类中的工具条成员变量m_wndToolBar的类型由CtoolBar改为CmyComboBar并在CMainFrame的OnCreate函数中加入如下代码:

Crect rect;
M_wndToolBar.SetButtonlnfo(3,IDC_MYCOMBOX,TBBS_SEPAR ATOR,120);
m_wndToolBar.GetItemRect(3,&rect);
rect.bottom+=100;
if(m_wndToolBar.m_mycombox.Create(CBS_DROPDOWN|WS-VISIBLE|WS_TABSTOP|(BS_AVTOHSCROLL,rect, &m_wndTooLBar,IDC_MYCOMBOX))
return -1;
m-wndTooLBar.M-mycombox.Add String(\"家用电脑\");
4.至此,已完成了显示工作,下面只需根据自己的需要为组合框添加消息处理函数即可。
arpnet 发表于 2010-8-2 14:09 | 显示全部楼层
好...............
arpnet 发表于 2010-8-2 14:10 | 显示全部楼层
好.................
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-23 15:43 , Processed in 0.139336 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表