标签控件Tab
来源:互联网 发布:pla算法 迭代次数 编辑:程序博客网 时间:2024/05/16 17:27
1、创建一个对话框应用程序,并创建3个子对话框。ID分别为:IDD_PAGE1、IDD_PAGE2、IDD_PAGE3。设置属性:child、无边框。
2、为三个对话框分别绑定一个类:CPage1、CPage2、CPage3
3、为tab控件绑定一个控件变量:m_tab
4、在主对话框的头文件中定义3个对话框类的对象:
class CTabCtrlDlg : public CDialogEx{public:CPage1 m_p1;CPage2 m_p2;CPage3 m_p3;CTabCtrl m_tab;//......
5、在OnInitDialog()函数中进行如下初始化工作:
BOOL CTabCtrlDlg::OnInitDialog(){CDialogEx::OnInitDialog();// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE);// 设置大图标SetIcon(m_hIcon, FALSE);// 设置小图标// TODO: 在此添加额外的初始化代码m_tab.InsertItem(0,"标签1");//添加三个标签m_tab.InsertItem(1,"标签2");m_tab.InsertItem(2,"标签3");m_p1.Create(IDD_PAGE1,this);//创建3个非模态对话框m_p2.Create(IDD_PAGE2,this);m_p3.Create(IDD_PAGE3,this);CRect r,r1;m_tab.GetItemRect(0,&r);//获取第一个标签的矩形框的大小m_tab.GetWindowRect(&r1);//获取整个tab控件对话框的大小this->ScreenToClient(&r1);//转换成主对话框的客户区坐标r1.top += r.Height()+2;//漏出标签文字r1.DeflateRect(1,1);//四周向中央缩进1个单元,露出tab的边框m_p1.MoveWindow(&r1);m_p2.MoveWindow(&r1);m_p3.MoveWindow(&r1);m_p1.ShowWindow(SW_SHOW);m_p1.SetFocus();return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}
6、为消息 TCN_SELCHANGE 添加消息响应函数:
void CTabCtrlDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult){int i = 0;int nCurSel = m_tab.GetCurSel();//获取当前选择tab页的索引 CWnd* ps[] = {&m_p1,&m_p2,&m_p3};while (i < sizeof(ps)/sizeof(ps[0])){ps[i]->ShowWindow(i == nCurSel?SW_SHOW:SW_HIDE);i++;}ps[nCurSel]->SetFocus();*pResult = 0;}
完毕。
注意:TCN_SELCHANGING 和 TCN_SELCHANGE 两个消息不能添加错:
小心=TCN_SELCHANGE和=TCN_SELCHANGING,今天使用CTabCtrl的时候,没有注意有两个消息都可以在选择选项卡的时候都有相应,想当然的用了SELCHANGING那个,但是在进入消息响应之后,获取当前选项卡的序列号一直不对,一直都是前一个的序列号,后来发现,还有一个SELCHANGE消息,查了之后,才发现,选项卡改变之后,是先执行=TCN_SELCHANGING,后执行=TCN_SELCHANGE,在执行=TCN_SELCHANGING的时候,选项卡还未最终完成切换,所以获取的当前序列一直都是之前哪一个的,而这里要获取切换后的,要用=TCN_SELCHANGE消息。
阅读全文
0 0
- 使用标签控件Tab
- 标签控件Tab
- MFC标签控件Tab
- 组合控件之tab标签
- 标签控件Tab Control以及CTabCtrl类
- MFC之标签控件Tab Control
- Tab标签
- tab标签
- tab标签
- Tab标签
- Javascript 标签页(TAB)浏览控件推介之:DOMTab
- vc 对话框使用Tab Control控件的多标签页
- C#TabCotrol控件实现shift+tab的标签切换
- tab控件
- TAB控件
- tab 控件
- Tab控件
- Tab控件
- 随机数生成算法
- angular-bootstrap-nav-tree 插件的应用 abntree
- 欢迎使用CSDN-markdown编辑器
- 树状数组求不带修改前缀最值问题 51NOD 1272 最大距离
- mongo ping函数实例
- 标签控件Tab
- leetcode 309. Best Time to Buy and Sell Stock with Cooldown
- 翻译连载 | JavaScript轻量级函数式编程-第5章:减少副作用 |《你不知道的JS》姊妹篇
- 利用nginx 反向代理解决跨域问题
- LeetCode: 66. Plus One
- 翻译连载 | JavaScript轻量级函数式编程-第4章:组合函数 |《你不知道的JS》姊妹篇
- NGUI_的Atlas图集学习_005
- 树——重建二叉树
- 文件所有者、用户组和其他人的概念理解以及修改权限的操作