mfc tab控件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc tab控件相关的知识,希望对你有一定的参考价值。
问题是,【子页分别对应0,1,2.】,我点击相应的tab键,函数 m_tab.GetCurSel()(见代码)老是随机产生一个数,使得tab键和子页内容对应错误!!下面是代码,打下帮忙啊!!!!!!
BOOL Ccheckbuy::OnInitDialog()
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_tab.InsertItem(0,"直接购票");//添加参数一选项卡
m_tab.InsertItem(1,"车次查询"); //添加参数二选项卡
m_tab.InsertItem(2,"改签退票"); //添加结果选项卡
m_direcbuy.Create(IDD_DIALOG4,GetDlgItem(IDC_TAB));
m_cust.Create(IDD_DIALOG5,GetDlgItem(IDC_TAB));
m_chaxun2.Create(IDD_DIALOG6,GetDlgItem(IDC_TAB));
//获得IDC_TABTEST客户区大小
CRect rs;
m_tab.GetClientRect(&rs);
//调整子对话框在父窗口中的位置
rs.top+=30;
rs.bottom-=150;
rs.left+=20;
rs.right-=40;
//设置子对话框尺寸并移动到指定位置
m_direcbuy.MoveWindow(&rs);
m_cust.MoveWindow(&rs);
m_chaxun2.MoveWindow(&rs);
//分别设置隐藏和显示
m_direcbuy.ShowWindow(true);
m_cust.ShowWindow(false);
m_chaxun2.ShowWindow(false);
m_tab.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
void Ccheckbuy::OnSelchangingTab(NMHDR* pNMHDR, LRESULT* pResult)
// TODO: Add your control notification handler code here
int CurSel = m_tab.GetCurSel();
switch(CurSel)
case 0:
m_direcbuy.ShowWindow(true);
m_cust.ShowWindow(false);
m_chaxun2.ShowWindow(false);
break;
case 1:
m_direcbuy.ShowWindow(false);
m_cust.ShowWindow(true);
m_chaxun2.ShowWindow(false);
break;
case 2:
m_direcbuy.ShowWindow(false);
m_cust.ShowWindow(false);
m_chaxun2.ShowWindow(true);
break;
default:
;
*pResult = 0;
怎么灭人回答?这么悲剧????
MFC编程 | tab control控件的使用
// 建立一个Cluster窗口,通过tab可以切换成C-Means和Fuzzy C-Means窗口
1、插入对话框((ID:IDD_DIG_CLUSTER),删去默认生成的控件“OK”和“Cancel”后,插入一个tab control控件(ID:IDC_TAB)。通过类向导,给此对话框定义一个类CCluster,给tab控件定义变量m_tab。
2、插入另外两个对话框作为C-Means和Fuzzy C-Means的窗体,窗体属性中“Style”均设置为Child,“Border”设置为None,同样给这两个对话框分别定义类CCmeans和CFuzzyCMeans。
3、 在类CCluster中添加类CCmeans和CFuzzyCMeans的头文件,定义m_cmeans和m_fcmeans对象和标志枚举flg。
CFuzzyCMeas m_fcmeans;
enum{cmeans, fcmeans}flg; // 标志位,日后可供使用
4、重载类CCluster对应对话框的初始化函数OnInitDialog() ,添加如下代码即可
m_tab.InsertItem(1, "Fuzzy C-Means");// 插入第二个tab,显示Fuzzy C-Means
m_cmeans.Create(IDD_DIG_CMEANS, GetDlgItem(IDC_TAB)); // 为m_cmeans和m_fcmeans产生对应的tab
m_fcmeans.Create(IDD_DIG_FUZZYC, GetDlgItem(IDC_TAB));
m_tab.SetCurSel(0); // 设置默认的tab
5、编译、运行即可
个人经验分享,欢迎转载,转载请注明出处:
By IYL:http://www.cnblogs.com/YLDream/p/5616682.html
如有失误,欢迎指正!
如果觉得不错,不妨“顶”一个或者“推荐”一番,这将是对我莫大的支持!
为了更好!
-YL
以上是关于mfc tab控件的主要内容,如果未能解决你的问题,请参考以下文章