凡用過網絡螞蟻的人都知道,網絡螞蟻界面右下角的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);
/
本文配套源碼