[转]如何使用CTabCtrl来实现多页面属性对话框?

导读:
  关于在VC中如何使用这个控件,大体思路可以这样:
  1)在资源管理器中创建几个Dialog, 分别生成相应的类(基于CDialog),注意,要设置Dialog的Style为"Child", Border为"None";
  2)在CDialog::OnInitDialog中,调用CTabCtrl::InsertItem(...)方法添加几个页面
  3)调用CDialog的Create方法创建几个对话框变量;
  3)在主窗口中,捕获Tab Control的页选择事件,在其中对索引值进行分类,然后就显示你的对话框,注意显示一个的同时,要隐藏其他的对话框。
  下面是个测试程序:
  
  
  
  主对话框:
  // TmpTstDlg.h : header file
  //
  #if !defined(AFX_TMPTSTDLG_H__881692D3_4A86_42CD_89F6_1FCB692A13F9__INCLUDED_)
  #define AFX_TMPTSTDLG_H__881692D3_4A86_42CD_89F6_1FCB692A13F9__INCLUDED_
  #if _MSC_VER >1000
  #pragma once
  #endif // _MSC_VER >1000
  #include "TreeDlg.h"
  #include "TstDlg.h"
  #include "OtherDlg.h"
  /
  // CTmpTstDlg dialog
  class CTmpTstDlg : public CDialog
  {
  // Construction
  public:
  CTmpTstDlg(CWnd* pParent = NULL); // standard constructor
  // Dialog Data
  //{ {AFX_DATA(CTmpTstDlg)
  enum { IDD = IDD_TMPTST_DIALOG };
  CTabCtrl m_ctrlTab;
  //}}AFX_DATA
  // ClassWizard generated virtual function overrides
  //{ {AFX_VIRTUAL(CTmpTstDlg)
  public:
  virtual BOOL PreTranslateMessage(MSG* pMsg);
  protected:
  virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  //}}AFX_VIRTUAL
  // Implementation
  protected:
  HICON m_hIcon;
  CMenu m_menuMain;
  void AdjustCtrl();
  // Generated message map functions
  //{ {AFX_MSG(CTmpTstDlg)
  virtual BOOL OnInitDialog();
  afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  afx_msg void OnPaint();
  afx_msg HCURSOR OnQueryDragIcon();
  afx_msg void OnDestroy();
  afx_msg void OnSize(UINT nType, int cx, int cy);
  afx_msg void OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult);
  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  afx_msg void OnAbout();
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()
  private:
  CTreeDlg m_dlgTree;
  CTstDlg m_dlgTst;
  COtherDlg m_dlgOther;
  };
  //{ {AFX_INSERT_LOCATION}}
  // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  #endif // !defined(AFX_TMPTSTDLG_H__881692D3_4A86_42CD_89F6_1FCB692A13F9__INCLUDED_)
  // TmpTstDlg.cpp : implementation file
  //
  #include "stdafx.h"
  #include "TmpTst.h"
  #include "TmpTstDlg.h"
  #ifdef _DEBUG
  #define new DEBUG_NEW
  #undef THIS_FILE
  static char THIS_FILE[] =
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值