CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

CTabCtrl空间到底怎么用?怎么无法可视化编辑,简直太不方便了,我该怎么办?

楼主jarrywan(阿宝)2003-11-04 19:51:05 在 VC/MFC / 界面 提问

CTabCtrl空间到底怎么用?怎么无法可视化编辑,简直太不方便了,我该怎么办?  
  tab页上的控件只能用代码写吗?  
  如何方便更好的使用tab控件? 问题点数:0、回复次数:4Top

1 楼hahu(神仙?妖怪?谢谢!)回复于 2003-11-04 22:27:28 得分 0

从CPropertyPage派生相应的叶面  
  调用的时候  
  CPropertyYouPge   page1;  
  CPropertySheet   sheet;  
  sheet.AddPage(&page1);  
  if(sheet.DoModel()==IDOK)  
  {  
  }Top

2 楼wangjs720(听雨舟)回复于 2003-11-04 22:36:18 得分 0

静下心来认真学学别人的例子吧,这种可以搜出一大堆来  
   
  Good   luckTop

3 楼flyelf(空谷清音)回复于 2003-11-04 23:17:54 得分 0

可以往CTabctrl上加任何窗口Top

4 楼qrlvls( 空 气 )回复于 2003-11-05 10:02:52 得分 0

通常可以使用添加页的方法来切换,在选中一页后隐藏一个窗口然后显示另一个窗口[  
  可以创建几个无边框的对话框模板并生成相应的对话框页,在初始化Tab控件时动态创建窗口  
  下面是我以前一个工程中的对应源码  
   
  class   CHardwareDlg   :   public   CDialog  
  {  
  //   Construction  
  public:  
  CHardwareDlg(CWnd*   pParent   =   NULL);       //   standard   constructor  
   
  //   Dialog   Data  
  //{{AFX_DATA(CHardwareDlg)  
  enum   {   IDD   =   IDD_HARDWARE_CONFIG   };  
  CTabCtrl m_tabHwSettings;  
  //}}AFX_DATA  
   
   
  //   Overrides  
  //   ClassWizard   generated   virtual   function   overrides  
  //{{AFX_VIRTUAL(CHardwareDlg)  
  protected:  
  virtual   void   DoDataExchange(CDataExchange*   pDX);         //   DDX/DDV   support  
  //}}AFX_VIRTUAL  
   
  //   Implementation  
  protected:  
   
  //   Generated   message   map   functions  
  //{{AFX_MSG(CHardwareDlg)  
  virtual   BOOL   OnInitDialog();  
  afx_msg   int   OnCreate(LPCREATESTRUCT   lpCreateStruct);  
  afx_msg   void   OnSelchangeSettingsTab(NMHDR*   pNMHDR,   LRESULT*   pResult);  
  //}}AFX_MSG  
  DECLARE_MESSAGE_MAP()  
   
  private:  
  CImageList   m_lstTabImages;  
  CProtectApp   *m_pApp;  
   
  UINT m_uCurrentPage;  
  CHwDigitInDlg   m_dlgDigitIn;  
  CHwDigitOutDlg   m_dlgDigitOut;  
  CHwSimOutDlg   m_dlgSimOut;  
  };  
   
  BOOL   CHardwareDlg::OnInitDialog()    
  {  
  CRect   rcTabCtrl;  
   
  CDialog::OnInitDialog();  
   
  //   初始化   TAB   控件所使用的   ImageList  
  m_lstTabImages.Create(16,   16,   ILC_COLOR16,   3,   1);  
  m_lstTabImages.Add(m_pApp->LoadIcon(IDI_DIGIT_IN));  
  m_lstTabImages.Add(m_pApp->LoadIcon(IDI_DIGIT_OUT));  
  m_lstTabImages.Add(m_pApp->LoadIcon(IDI_SIMULAR_OUT));  
   
  //   为   TAB   控件添加三个页面,并将   TAB   控件与   ImageList   相关联  
  m_tabHwSettings.SetImageList(&m_lstTabImages);  
  m_tabHwSettings.InsertItem(0,   _T("数字量输入"),   0);  
  m_tabHwSettings.InsertItem(1,   _T("数字量输出"),   1);  
  m_tabHwSettings.InsertItem(2,   _T("模拟量输出"),   2);  
   
  //调整各页面的大小  
  m_tabHwSettings.GetWindowRect(rcTabCtrl);  
  ScreenToClient(rcTabCtrl);  
  m_dlgDigitIn.MoveWindow(rcTabCtrl.left+2,   rcTabCtrl.top+2,   rcTabCtrl.right-4,   rcTabCtrl.bottom-26);  
  m_dlgDigitOut.MoveWindow(rcTabCtrl.left+2,   rcTabCtrl.top+2,   rcTabCtrl.right-4,   rcTabCtrl.bottom-26);  
  m_dlgSimOut.MoveWindow(rcTabCtrl.left+2,   rcTabCtrl.top+2,   rcTabCtrl.right-4,   rcTabCtrl.bottom-26);  
   
  //   默认为显示“数字量输入”页面  
  m_tabHwSettings.SetCurSel(0);  
  m_dlgDigitIn.ShowWindow(SW_SHOW);  
   
  return   TRUE;     //   return   TRUE   unless   you   set   the   focus   to   a   control  
                              //   EXCEPTION:   OCX   Property   Pages   should   return   FALSE  
  }  
   
  int   CHardwareDlg::OnCreate(LPCREATESTRUCT   lpCreateStruct)    
  {  
  if   (CDialog::OnCreate(lpCreateStruct)   ==   -1)  
  return   -1;  
   
  m_dlgDigitIn.Create(IDD_HW_DIGIT_IN,   this);  
  m_dlgDigitOut.Create(IDD_HW_DIGIT_OUT,   this);  
  m_dlgSimOut.Create(IDD_HW_SIMULAR_OUT,   this);  
   
  return   0;  
  }  
   
  void   CHardwareDlg::OnSelchangeSettingsTab(NMHDR*   pNMHDR,   LRESULT*   pResult)    
  {  
  switch(m_uCurrentPage)  
  {  
  case   0:  
  m_dlgDigitIn.ShowWindow(SW_HIDE);  
  break;  
  case   1:  
  m_dlgDigitOut.ShowWindow(SW_HIDE);  
  break;  
  case   2:  
  m_dlgSimOut.ShowWindow(SW_HIDE);  
  break;  
  }  
   
  m_uCurrentPage   =   m_tabHwSettings.GetCurSel();  
   
  switch(m_uCurrentPage)  
  {  
  case   0:  
  m_dlgDigitIn.ShowWindow(SW_SHOW);  
  break;  
  case   1:  
  m_dlgDigitOut.ShowWindow(SW_SHOW);  
  break;  
  case   2:  
  m_dlgSimOut.ShowWindow(SW_SHOW);  
  break;  
  }  
   
  *pResult   =   0;  
  }Top

相关问题

  • 请问有没有informix使用比较方便的可视化客户端?
  • 有什么好工具,能方便可视化,查询、增加、删除Oracle 数据、并能方便地生成Oracle 存储过程、函数、sql语句???
  • 急求可下载的,可视化,方便易用的工作流引擎,可以和Windows Sharepoint Server,infopath一起使用!!!
  • Eclipse可视化问题
  • VB做软件到底方不方便?
  • 建非可视化类及对象
  • 可视化java工具用什么好?
  • 窗体的可视化继承
  • 哪里有可视化的jCheckTree组件?
  • 可视化编辑的东东!

关键词

  • 控件
  • virtual
  • chardwaredlg
  • 方便
  • afx
  • sheet
  • tab
  • data

得分解答快速导航

  • 帖主:jarrywan

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo