VC中文网-VC-MFC编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1177|回复: 1

MFC TabSheet 源码

[复制链接]

8

主题

44

帖子

18

金币

连长

Rank: 7Rank: 7Rank: 7

积分
132
发表于 2018-7-27 04:56:53 | 显示全部楼层 |阅读模式
.h

    #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_)  

.cpp

    // TabSheet.cpp : implementation file  //   #include "stdafx.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->Create( m_IDD, this );  InsertItem( i, m_Title );  }   m_pPages[0]->ShowWindow(SW_SHOW);  for( int i=1; i < m_nNumOfPages; i++)  m_pPages->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();  }  
<div class="pgc-img">
MFC TabSheet 源码-1.jpg



更多内容回复查看:
游客,如果您要查看本帖隐藏内容请回复
C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

0

主题

4

帖子

17

金币

班长

Rank: 4

积分
15
发表于 2022-3-25 19:49:34 | 显示全部楼层
看看.......
C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

豫ICP备14012807号-2|小黑屋|联系客服|金币冲值|VC中文网

GMT+8, 2022-5-20 14:44 , Processed in 0.093749 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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