CTabSheet

// TabSheet.cpp : implementation file
//

#include "stdafx.h"
#include "dltool.h"
#include "TabSheet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// CTabSheet

CTabSheet::CTabSheet()
{
 m_nNumOfPages = 0;
 m_nCurrentPage = 0;
}

CTabSheet::~CTabSheet()
{
}


BEGIN_MESSAGE_MAP(CTabSheet, CTabCtrl)
 //{{AFX_MSG_MAP(CTabSheet)
 ON_WM_LBUTTONDOWN()
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/
// CTabSheet message handlers

BOOL CTabSheet::AddPage(LPCTSTR title, CDialog *pDialog,UINT ID)
{
 if( MAXPAGE == m_nNumOfPages )
  return FALSE;

 m_nNumOfPages++;

 m_pPages[m_nNumOfPages-1] = pDialog;
 m_IDD[m_nNumOfPages-1] = ID;
 m_Title[m_nNumOfPages-1] = title;

 return TRUE;
}

void CTabSheet::SetRect()
{
 CRect tabRect, itemRect;
 int nX, nY, nXc, nYc;

 GetClientRect(&tabRect);
 GetItemRect(0, &itemRect);

 nX=itemRect.left;
 nY=itemRect.bottom+1;
 nXc=tabRect.right-itemRect.left-2;
 nYc=tabRect.bottom-nY-2;

 m_pPages[0]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);
 for( int nCount=1; nCount < m_nNumOfPages; nCount++ )
  m_pPages[nCount]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);

}

void CTabSheet::Show()
{
 for( int i=0; i < m_nNumOfPages; i++ )
 {
  m_pPages[i]->Create( m_IDD[i], this );
  InsertItem( i, m_Title[i] );
 }

 m_pPages[0]->ShowWindow(SW_SHOW);
 for( i=1; i < m_nNumOfPages; i++)
  m_pPages[i]->ShowWindow(SW_HIDE);

 SetRect();

}

void CTabSheet::OnLButtonDown(UINT nFlags, CPoint point)
{
 CTabCtrl::OnLButtonDown(nFlags, point);

 if(m_nCurrentPage != GetCurFocus())
 {
  m_pPages[m_nCurrentPage]->ShowWindow(SW_HIDE);
  m_nCurrentPage=GetCurFocus();
  m_pPages[m_nCurrentPage]->ShowWindow(SW_SHOW);
//  m_pPages[m_nCurrentPage]->SetFocus();
 }
}

int CTabSheet::SetCurSel(int nItem)
{
 if( nItem < 0 || nItem >= m_nNumOfPages)
  return -1;

 int ret = m_nCurrentPage;

 if(m_nCurrentPage != nItem )
 {
  m_pPages[m_nCurrentPage]->ShowWindow(SW_HIDE);
  m_nCurrentPage = nItem;
  m_pPages[m_nCurrentPage]->ShowWindow(SW_SHOW);
//  m_pPages[m_nCurrentPage]->SetFocus();
  CTabCtrl::SetCurSel(nItem);
 }

 return ret;
}

int CTabSheet::GetCurSel()
{
 return CTabCtrl::GetCurSel();
}

 

 

#if !defined(AFX_TABSHEET_H__42EE262D_D15F_46D5_8F26_28FD049E99F4__INCLUDED_)
#define AFX_TABSHEET_H__42EE262D_D15F_46D5_8F26_28FD049E99F4__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// TabSheet.h : header file
//

/
// CTabSheet window
#define MAXPAGE 16

class CTabSheet : public CTabCtrl
{
// Construction
public:
 CTabSheet();

// Attributes
public:

// Operations
public:

// Overrides
 // ClassWizard generated virtual function overrides
 //{{AFX_VIRTUAL(CTabSheet)
 //}}AFX_VIRTUAL

// Implementation
public:
 int GetCurSel();
 int SetCurSel(int nItem);
 void Show();
 void SetRect();
 BOOL AddPage(LPCTSTR title, CDialog *pDialog, UINT ID);
 virtual ~CTabSheet();

 // Generated message map functions
protected:
 LPCTSTR m_Title[MAXPAGE];
 UINT m_IDD[MAXPAGE];
 CDialog* m_pPages[MAXPAGE];
 int m_nNumOfPages;
 int m_nCurrentPage;
 //{{AFX_MSG(CTabSheet)
 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
 //}}AFX_MSG

 DECLARE_MESSAGE_MAP()
};

/

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TABSHEET_H__42EE262D_D15F_46D5_8F26_28FD049E99F4__INCLUDED_)

使用

// dltoolDlg.h : header file
//

#pragma once


// CdltoolDlg dialog
#include "TabSheet.h"
#include "DisplayDlg.h" 
#include "GdcDlg.h"
#include "BacklightDlg.h"
#include "KeypadDlg.h"
#include "AudioDlg.h"
#include "afxcmn.h"

class CdltoolDlg : public CDialog
{
// Construction
public:
 CDisplayDlg m_display_dlg;
 CGdcDlg m_gdc_dlg;
 CBacklightDlg m_backlight_dlg;
 CKeypadDlg m_keypad_dlg;
 CAudioDlg m_audio_dlg;


 CdltoolDlg(CWnd* pParent = NULL); // standard constructor

// Dialog Data
 enum { IDD = IDD_DLTOOL_DIALOG };

 protected:
 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support


// Implementation
public:
 void printmsg(CString str);


protected:
 HICON m_hIcon;

 // Generated message map functions
 virtual BOOL OnInitDialog();
 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
 afx_msg void OnPaint();
 afx_msg HCURSOR OnQueryDragIcon();
 DECLARE_MESSAGE_MAP()
public:
 CTabSheet m_tab;
 afx_msg void OnBnClickedConnect();
 afx_msg void OnBnClickedCheckconn();
 afx_msg void OnBnClickedDisconnect();
 CString m_message;
 UINT m_comport;
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: MFC (Microsoft Foundation Classes) 是微软提供的一套用于开发 Windows 应用程序的类库。CTabSheet 类是 MFC 中的一个控件,用于创建带有多个标签页的对话框或窗口。 CTabSheet.h 是 CTabSheet 类的头文件,其中定义了该类的成员变量、成员函数和消息处理函数等。通常在头文件中,我们会包含一些必要的头文件,定义类的基类、使用的控件等,并声明类的成员变量和成员函数的原型。 CTabSheet.cpp 是 CTabSheet 类的源文件,其中实现了在头文件中声明的成员函数的具体功能。在源文件中,我们可以编写代码来初始化标签页,处理点击标签页时的事件响应等。 在使用 CTabSheet 类时,我们需要在需要使用标签页的窗口或对话框中包含一个控件类为 CTabSheet 的成员对象,并在相应的位置创建标签页。在初始化时,我们可以通过成员函数来添加、删除标签页,设置标签页的标题、显示内容等。 在实际使用中,我们可以通过 CTabSheet 类来创建一个具有多个标签页的对话框或窗口,可以在不同的标签页之间切换显示不同的内容。这样可以方便用户在一个窗口中同时展示不同的功能,提高用户体验。 总结来说,CTabSheet 类是 MFC 中用于创建带有多个标签页的对话框或窗口的控件类。通过在头文件中定义成员变量和成员函数的原型,以及在源文件中实现成员函数的具体功能,我们可以使用该类来创建、管理标签页,实现多标签页之间的切换和内容展示。 ### 回答2: MFC(Microsoft Foundation Classes)是一个面向对象的图形用户界面(GUI)框架,在Windows平台上开发应用程序时经常使用。在MFC中,CTabSheet.h和CTabSheet.cpp是用于创建、管理和控制标签页的相关类。 CTabSheet.h文件是一个头文件,其中定义了CTabSheet类。这个类继承自CPropertySheet类,用于创建和管理多个标签页的属性对话框。CTabSheet类有一些成员变量和成员函数,包括标签页标题、标签页数量、活动标签页索引和切换标签页等。通过对成员变量和成员函数的使用,可以自定义标签页的外观、行为和事件处理。 CTabSheet.cpp文件是一个源文件,其中实现了CTabSheet.h中定义的CTabSheet类的成员函数。在CTabSheet.cpp中,可以编写与标签页相关的逻辑代码,比如标签页的创建、初始化、显示和销毁等操作。可以重写一些事件处理函数,以便在特定的事件发生时执行自定义的操作。 使用CTabSheet类,可以方便地创建和管理具有多个标签页的应用程序界面。通过添加标签页,并在每个标签页中添加控件和相关的事件处理代码,可以实现多视图的切换、信息分类和整理等功能。标签页的切换过程是根据用户的操作来实现的,可以通过点击标签页或者使用快捷键进行切换。 总之,CTabSheet.h和CTabSheet.cpp是在MFC中使用的用于创建、管理和控制标签页的类和源文件。通过对这些文件的使用,我们可以方便地实现多标签页的应用程序界面,提供丰富的功能和用户交互体验。 ### 回答3: MFC的CTabSheet类是一个用于创建和管理选项卡控件的类。在使用MFC进行Windows界面开发时,可以通过包含ctabsheet.h头文件和ctabsheet.cpp源文件来使用该类。 CTabSheet类派生自CPropertySheet类,它提供了在标准的CPropertySheet基础上添加选项卡功能的能力。因此,CTabSheet类具有类似于CPropertySheet的应用程序框架,但具有标签页样式的用户界面。 在CTabSheet类的头文件ctabsheet.h中,我们可以找到该类的声明。该头文件包含了CTabSheet类的成员变量和成员函数的声明,包括构造函数、拷贝构造函数、析构函数和一些辅助函数。我们还可以找到该类的一些重要成员变量,如选项卡控件的句柄、当前选项卡的索引等。 而在CTabSheet类的源文件ctabsheet.cpp中,我们可以找到该类成员函数的实现。这些函数包括构造函数和析构函数的具体实现,以及与选项卡控件相关的一些功能函数的实现。这些函数可以帮助我们创建和管理选项卡控件,例如添加选项卡、删除选项卡、选择选项卡等。 通过包含ctabsheet.h头文件和ctabsheet.cpp源文件,我们可以在MFC应用程序中使用CTabSheet类来创建和操作选项卡控件。我们可以根据需要自定义选项卡的样式和布局,并通过CTabSheet类提供的函数来处理用户操作和与选项卡相关的事件。 总而言之,MFC的CTabSheet类是一个用于创建和管理选项卡控件的类,通过包含ctabsheet.h头文件和ctabsheet.cpp源文件,我们可以在MFC应用程序中使用该类来实现选项卡效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值