凡用过网络蚂蚁的人都知道,网络蚂蚁界面右下角的Tab不同于一般的Tab。它是运动的,当单击选项卡时,相应的子界面从左向右运动,给整个软件一种动感。笔者用VC++6.0也实现了类似的Tab效果。此Tab有如下特点:
1.克服了VC++6.0提供的Tab必须在同一个界面上设计所有控件的缺陷,每一个选项卡就是一个单独的对话框
2.实现了类似网络蚂蚁的拉帘式Tab
本文程序运行效果图一
一.类的定义:笔者是通过封装一个简单的CMyTab类来实现的,该类的头文件的部分代码如下:
class CMyTab : public CTabCtrl
{
//////.................................省略一部分代码
public:
int m_ispeed;//运动速度
BOOL m_bMove;//是否运动
int m_wndwidth;//子窗体的宽度
CPoint m_bottomright;//子窗体右下角的坐标
CPoint m_topleft;//子窗体左上角的坐标
CWnd *m_pCurWnd;//当前窗体
CRect m_tabrect;//Tab的矩形区域
CPoint m_ptTabs;//左上角坐标
void AddItem(CWnd *pwnd,LPTSTR name);//添加选项卡
int m_itemcount;//Item总数
virtual ~CMyTab();
// Generated message map functions
protected:
//{{AFX_MSG(CMyTab)
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnSelchange(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSelchanging(NMHDR* pNMHDR, LRESULT* pResult);
/
本文配套源码