| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
标签页控件是什么呢? 
 
 
懂了吧!如果对一个标签页控件添加变量的话,变量类型就是CTabCtrl的。 
 
CTabCtrl有什么成员函数呢?https://msdn.microsoft.com/zh-cn/library/essk9hbw(v=vs.120).aspx 
(重要提示:请大家认真看msdn文档,否则你可能会看不懂下面的例子) 
另外至于可以添加什么事件处理程序,请大家试试。 
 
实践时间! 
 
 
本次例子比较复杂,UINT担心大家看不懂,就破例给大家讲解下。 
1.在资源文件上选择添加->资源 
 
 
2.选择Dialog,然后点击“新建(N)” 
 
 
3.重复第二步,即创建2个对话框(因为一会儿有2个标签) 
4.(关键一步)把2个对话框的Style属性都设置为Child,把Border设置为None。 
5.给第一个对话框拖一个Static Text,把Caption属性设置为“我是标签页1”,给第二个对话框拖一个Static Text,把Caption属性设置为“我是标签页2” 
6.给第一个对话框添加类,类名就是CDlg1,给第二个对话框添加类,类名就是CDlg2 
 
 
7.在[你的工程名]Dlg.h里面包含Dlg1.h和Dlg2.h 
8.在[你的工程名]Dlg.h里面的C[你的工程名]Dlg类添加如下内容(你可能会问要什么访问属性,随你,public 即可) 
- CDlg1 m_Dlg1;
 
 - CDlg2 m_Dlg2;
 
  复制代码 
9.在OnInitDialog中添加如下代码 
-         CRect tabRect;   // 标签控件客户区的位置和大小   
 
  
-         m_tab.InsertItem(0, _T("标签页1"));         // 插入第一个标签“标签页1”   
 
 -         m_tab.InsertItem(1, _T("标签页2"));  // 插入第二个标签“标签页2”   
 
 -         m_Dlg1.Create(IDD_DIALOG1, &m_tab);    // 创建第一个标签页   
 
 -         m_Dlg2.Create(IDD_DIALOG2, &m_tab); // 创建第二个标签页   
 
  
-         m_tab.GetClientRect(&tabRect);    // 获取标签控件客户区Rect   
 
 -         // 调整tabRect,使其覆盖范围适合放置标签页   
 
 -         tabRect.left += 1;
 
 -         tabRect.right -= 1;
 
 -         tabRect.top += 25;
 
 -         tabRect.bottom -= 1;
 
  
-         // 根据调整好的tabRect放置m_jzmDlg子对话框,并设置为显示   
 
 -         m_Dlg1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);//注意!这里不能用ShowWindow!!
 
 -         // 根据调整好的tabRect放置m_androidDlg子对话框,并设置为隐藏   
 
 -         m_Dlg2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);//注意!这里不能用ShowWindow!!
 
  复制代码 
如果现在就运行,你会看到无法切换标签页。 
所以我们要添加TCN_SELCHANGE(选择切换)的事件处理程序。 
10.添加TCN_SELCHANGE(选择切换)的事件处理程序。 
11.在TCN_SELCHANGE的事件处理程序中添加以下代码。 
-         CRect tabRect;
 
 -         m_tab.GetClientRect(&tabRect);
 
 -         tabRect.left += 1;
 
 -         tabRect.right -= 1;
 
 -         tabRect.top += 25;
 
 -         tabRect.bottom -= 1;
 
  
-         switch (m_tab.GetCurSel())
 
 -         {
 
 -         case 0:// 如果标签控件当前选择标签为“标签页1”,则显示m_Dlg1对话框,隐藏m_Dlg2对话框   
 
 -                 m_Dlg1.ShowWindow(SW_SHOW);
 
 -                 m_Dlg2.ShowWindow(SW_HIDE);
 
 -                 break;
 
 -         case 1:// 如果标签控件当前选择标签为“标签页2”,则隐藏m_Dlg1对话框,显示m_Dlg2对话框   
 
 -                 m_Dlg1.ShowWindow(SW_HIDE);
 
 -                 m_Dlg2.ShowWindow(SW_SHOW);
 
 -                 break;
 
 -         }
 
  复制代码 
现在运行,就好了~ 
 
下期预告 
动画控件!动画控件!动画控件! 
重要的事情说三遍!!! |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |