首页 新闻 搜索 短信 分类 聊天 导航
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 高级编程 > 正文
VC++ 6.0编程中Tab控件的改进方法

http://www.sina.com.cn 2001/12/25 17:08 赛迪网-中国计算机报

  文/阙锋

  在VC++ 6.0中提供的Tab Control控件与VB 6.0中提供的Tabbed dialog控件相比,使用的灵活性较差。Tabbed Dialog控件可以直接将其它控件拖到该控件的各tab页中,每一页都相当于一个Dialog,而Tab Control控件则只能将其它控件拖到第一个tab页中显示,因此需要通过编代码来实现在不同tab页中显示不同的内容。


图1 实现原理

  本文提供了一种Tab Control控件的改进方法,使它也能具有和Tabbed Dialog类似的功能。实现的基本思路是,将Dialog和tab页对应起来,将需要放入tab页的控件放入Dialog中,这样就不用编写其它代码来将控件显示在其它tab页中。

  为了使得代码可以重用,在这里构造了一个通用的类:MyTabCtrlForDialog, 资源仍然使用VC++ 6.0中的Tab Control控件。MyTabCtrlForDialog由VC提供的CTabCtrl类继承而来,它增加了五个成员函数:AddView;OnSize;DeleteView用来将一个Dialog(在这里使用CformView类的子类)加入Tab控件或从Tab控件删除;OnSelChange用来响应界面选中tab页时产生的触发消息,在该函数中调用Show函数显示被选中页对应的Dialog;OnMove用来响应界面拖动Tab控件时产生的触发消息,使得Tab控件内显示的内容能随界面的移动、缩放而相应地移动、缩放。

  在使用时,只需将你要使用的Tab Control控件对应的类从MyTabCtrlForDialog类继承而来即可,应用起来非常方便。使用该类后,可以很方便地用VC++开发出显示内容丰富多彩的界面。图2是一个使用该类做的界面的一部分。


图2 部分界面

  本文使用类的继承方法来改进Tab Control控件的功能,使得该控件具有更强的实际应用价值,同时,实现起来也非常方便。如果要将该控件放入Dialog或form View中,则还需覆盖CDialog或CFormView的OnMove、OnSize函数,其原理和MyTabCtrlForDialog类的OnMove、OnSize函数相同,在此不再赘述。



发表评论】【初学者园地】【科技聊天】【关闭窗口

新 闻 查 询



科技时代意见反馈留言板 电话:010-82612286 或 010-82628888-3488   欢迎批评指正

网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息

Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网