Tab控件使用心得_1227
来源:互联网 发布:在线作诗软件生成器 编辑:程序博客网 时间:2024/06/07 04:57
VC之TAB控件实例
1. 在主面板上拖放一Tab Control控件,我们这里建立其在主面板类(CTabSampleDlg)里面的成员变量m_tab。
//通过右击Tab控件增加此变量m_tab
//然后双击该Tab控件,增加OnSelchangeTab函数句柄
2.添加两个子对话框(如下图,右键资源属性对话框),将其属性设置为“child,none”(在属性->样式中,选择 下层)。
//右键子对话框,选择属性,在样式tab页面中
//chid为样式选项的下层;none为边框选项的无
这里要注意了,添加的必须是继承自DIALOG类的对话框,而不是PropPage对话框,否则的话,子面板将不能响应用户操作。然后生成两个新类“CTabPage1, CTabPage2”。
//右键子对话框,选择建立类向导,会自动弹出添加新类窗口
//选择创建一个新类
3.为CTabSampleDlg类添加两个成员变量,他们分别是CTabPage1和CTabPage2类的实例。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//在CTabSampleDlg.cpp文件一开头位置中手工输入CTabPage1 m_page1;
// CTabPage2 m_page2;
//定义为全局变量,不是放在类中做成员变量!
//另务必将前面新增的两个对话框类CTabPage1/CTabPage2的头文件也用#include加到CTabSampleDlg.cpp中
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4.在CTabSampleDlg类的OnInitDialog成员函数内(即主对话框界面的OnInitDialog函数中)的适当位置添加如下代码。
BOOL CTabSampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The work does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
//==========================================================
//初始化TAB
TCITEM tc1,tc2;
tc1.mask = TCIF_TEXT;
tc1.pszText = "第一页";
tc2.mask = TCIF_TEXT;
tc2.pszText = "第二页";
m_tab.InsertItem(0, &tc1);
m_tab.InsertItem(1, &tc2); //到这里只是添加了两个tab页
CRect rec;
m_tab.GetClientRect(&rec);//获得TAB控件的坐标
//定位选项卡页的位置,这里可以根据情况自己调节偏移量
rec.bottom -= 1;
rec.left += 1;
rec.top += 20;
rec.right -= 2;
//创建子页面
m_page1.Create(IDD_DIALOG1, GetDlgItem(IDC_TAB));
m_page2.Create(IDD_DIALOG2, GetDlgItem(IDC_TAB));
//将子页面移动到指定的位置
m_page1.MoveWindow(&rec);
m_page2.MoveWindow(&rec);
//显示子页面
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
//===============================================================
return TRUE; // return TRUE unless you set the focus to a control
}
5. 为主面板上的TabControl 控件添加 OnSelchangeTab事件,添加代码如下。
void CTabSampleDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
switch (m_tab.GetCurSel())
{
case 0:
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
break;
case 1:
m_page1.ShowWindow(SW_HIDE);
m_page2.ShowWindow(SW_SHOW);
break;
default:
break;
}
*pResult = 0;
}
- Tab控件使用心得_1227
- Tab控件使用心得
- MFC中关于tab控件使用的一点心得
- Tab控件--VC2010 使用TAB控件
- 使用Tab Control控件
- Tab控件的使用
- Tab 控件使用例子
- Tab控件的使用
- VC++ TAB控件使用
- tab控件使用
- 使用标签控件Tab
- Tab控件的使用
- VC2010 使用TAB控件
- VC2010 Tab控件使用
- VC2010 使用TAB控件
- |tab控件的使用|
- mfc tab控件使用
- MFC tab控件使用
- Pig Hive对比
- java对中文排序
- session 在不同服务器中的共享代码
- jstl fn 函数
- shell scripts 参数
- Tab控件使用心得_1227
- UNIX IO---再谈文件描述符
- 断电故障导致 ASM DiskGroup 故障及恢复案例
- 【组合数学】卡特兰数
- 引用的深入探讨
- scp 最快的速度
- C和C++动态内存的分配
- 教你如何删除svn目录
- DG、Stream和advanced的比较