VC编程之VC++ 6.0 MFC Tab Control Usage
小标 2018-12-14 来源 : 阅读 664 评论 0

摘要:本文主要向大家介绍了VC编程之VC++ 6.0 MFC Tab Control Usage,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之VC++ 6.0 MFC Tab Control Usage,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

VC编程之VC++ 6.0 MFC Tab Control Usage

1、添加Tab Control插件
此处省略2000千字。。。
2、Setting Tab Control Properties
单击右键  -->Properties -->Style
Alignment : Right Justify
Focus     : Never
3、Add Several Dialogs
此处省略N个字。。。
4、Setting Dialogs Properties
选中新添加的对话框,Properties -->Style
Style : Child
Border: None
Meanwhile在MainForm里面添加子窗体的变量
//MainForm.h
......
CDialog1 d_dialog1;
CDialog2 d_dialog2;
CDialog3 d_dialog3;
......
5、在MainForm(主窗体)里面添加Tab_Control变量
eg:m_tab;
6、在MainForm的initDialog里面添加Tab_Control的初始化信息
BOOL CFormeDlg::OnInitDialog()
{
........
// TODO: Add extra initialization here
d_dialog1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB)); 
d_dialog2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB)); 
d_dialog3.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB)); 
m_tab.InsertItem(0,"Window One");  //添加参数一选项卡 
m_tab.InsertItem(1,"Window Two");  //添加参数二选项卡 
m_tab.InsertItem(2,"Window Three");    //添加结果选项卡
//获得IDC_TABTEST客户区大小 
CRect rs; 
m_tab.GetClientRect(&rs); 
//调整子对话框在父窗口中的位置 
rs.top+=20;     rs.bottom-=1; 
rs.left+=1;     rs.right-=1;
 
//设置子对话框尺寸并移动到指定位置 
d_dialog1.MoveWindow(&rs); 
d_dialog2.MoveWindow(&rs); 
d_dialog3.MoveWindow(&rs); 

//分别设置隐藏和显示
d_dialog1.ShowWindow(true);
d_dialog2.ShowWindow(false);
d_dialog3.ShowWindow(false);

//设置默认的选项卡 
m_tab.SetCurSel(0);

return TRUE;  // return TRUE  unless you set the focus to a control
}
注:此处还可以这样来确定对话框的位置和大小
d_dialog1.SetWindowPos(NULL,2,20,695,505,SWP_SHOWWINDOW);
d_dialog2.SetWindowPos(NULL,5,20,445,340,SWP_HIDEWINDOW);
d_dialog3.SetWindowPos(NULL,5,20,445,340,SWP_HIDEWINDOW);
但是,这个需要一步一步的调,不方便,我还是喜欢上面那种方法;
7、重载OnSelchangTab(NMHDR* pNMHDR, LRESULT* pResult) 函数
为了保证Tab可以切换的同时,对话框也进行切换,要进行如下添加
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//MainForm.h
// Implementation
protected:
HICON m_hIcon;

// Generated message map functions
//{{AFX_MSG(CFormeDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
..........
afx_msg void OnSelchangTab(NMHDR* pNMHDR, LRESULT* pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//MainForm.cpp
BEGIN_MESSAGE_MAP(CFormeDlg, CDialog)
//{{AFX_MSG_MAP(CFormeDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_DRAWITEM()
ON_NOTIFY(TCN_SELCHANGING, IDC_TAB, OnSelchangTab)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//MainForm.cpp
void MainForm::OnSelchangTab(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
int CurSel = m_tab.GetCurSel();
TRACE("CurSel = %d\n", CurSel); 
switch(CurSel) 

case 2: 
d_dialog1.ShowWindow(true);
d_dialog2.ShowWindow(false);
d_dialog3.ShowWindow(false);
break; 
case 0: 
d_dialog2.ShowWindow(true);
d_dialog1.ShowWindow(false);
d_dialog3.ShowWindow(false); 
break; 
case 1: 
d_dialog3.ShowWindow(true);
d_dialog1.ShowWindow(false);
d_dialog2.ShowWindow(false);
break; 
default:; 
}     
*pResult = 0;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
OK,Now You Can be Happy for Your Gain;    

以上就介绍了VC/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程