摘要:本文主要向大家介绍了VC编程之VC++ 6.0 MFC Tab Control Usage,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程之VC++ 6.0 MFC Tab Control Usage,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号