怎么向tab control中加其它控件(如文本框等)
1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl
2、创建两个新的对话框资源,其属性作如下修改:
Border:none //边界为空,这样它就没了标题栏
Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。
其它如果没有必要,就不用改了。
在上面加一些控件什么的,具体操作跟普通对话框没有区别。
完成后从这两个对话框模板生成两个新的对话框类。
3、在主对话框中为新添加进来的两个类增加两个变量:
如:CDialog1 m_mm1;
CDialog2 m_mm2;
4、在主对话框的OnInitDialog()函数中添加如下类似的代码:
TCITEM item;
item.mask = TCIF_TEXT;
item.pszText = "第一页";
m_tabctrl.InsertItem (0,&item);
item.pszText ="第二页";
m_tabctrl.InsertItem (1,&item);
m_mm1.Create (IDD_DIALOG1,&m_tabctrl);
m_mm2.Create (IDD_DIALOG2,&m_tabctrl);
m_mm1.SetWindowPos (NULL,10,30,400,100,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,400,100,SWP_HIDEWINDOW );
解释如下:
两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。
SetWindowPos()函数设置这两个对话框在Z顺序中的位置,显示或隐藏状态.。
5、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件,选择添加一个事件可以完成这个操作。
在事件处理中添加如下代码,如下例:
void CtabdialogDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
CRect r;
m_tabctrl.GetClientRect (&r);
switch(m_tabctrl.GetCurSel())
{
case 0:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW );
break;
case 1:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW );
break;
}
*pResult = 0;
}
要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel() 函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。
m_Tab.InsertItem(0,"第一页");
m_Tab.InsertItem(1,"第二页");
m_Tab.InsertItem(2,"第三页");
m_Tab.InsertItem(3,"第四页");
m_PageA.Create(IDD_PROPPAGE_A,&m_Tab);
m_PageB.Create(IDD_PROPPAGE_B,&m_Tab);
m_PageC.Create(IDD_PROPPAGE_C,&m_Tab);
m_PageD.Create(IDD_PROPPAGE_D,&m_Tab);
m_PageA.ShowWindow(SW_SHOW);
m_PageB.ShowWindow(SW_HIDE);
m_PageC.ShowWindow(SW_HIDE);
m_PageD.ShowWindow(SW_HIDE);
怎么向tab control中加其它控件(如文本框等)相关推荐
- 创建输入控件(input控件、文本框、密码框、单项选择、多项选择、重置与提交按钮的设置)
创建输入控件 input控件的相关概念 input控件的属性 input控件的类型 文本框的设置 密码框的设置 单项选择的设置 多项选择的设置 重置与提交按钮的设置 综合运用 相关概念选择题及参考答案 ...
- Android:基础控件按键文本框输入框制作登录页面
基础控件之Button,TextView,EditText,ImageView Button:按键 TextView:文本框 EditText:输入框 ImageView:图片 那我们新建一个工程研究 ...
- Unity3D TextField 和 PasswordField控件(文本框)
TextField控件 TextField控件主要用于监听用户输入的信息,使用GUI.TextField()方法显示输入框,该方法的返回值为用户输入的字符串信息. 常见形式: GUI.TextFiel ...
- slider控件控制文本框字体大小
1.控件代码 <pre name="code" class="csharp"> <Slider x:Name="slider1&qu ...
- html表单控件富文本框,表单控件之富文本框实践
多行文本输入框(不是富文本框)的html代码如下: 学历及经历: ${emp.details} 富文本的js代码如下: // create Editor from textarea HTML elem ...
- python单行文本控件_文本框控件
[TOC] # 简介 * 文本框也就是输入框 * QLineEdit是单行文本输入框 * QTextEdit是多行文本输入框 QLineEdit ![](https://box.kancloud.cn ...
- app简单控件了解——文本框
示例: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:lay ...
- html文本框中加提示,如何使HTML文本框为空时显示提示?
您可以使用HTML中的属性设置占位符(浏览器支持).该和可以用CSS改变(虽然浏览器的支持是有限的).placeholderfont-stylecolor input[type=search]::-w ...
- 2020.4.23工作记录————Regsvr32加载控件失败:“请确保该二进制存储在指定路径中。。。”
工作记录----Regsvr32加载控件失败: 之前的OCX控件今天我因为工作需要又重新写了个新的,跟之前不同的是这次的控件链接了第三方的动态库,但是在OCX控件生成完成后我使用管理员身份运行cmd对 ...
最新文章
- css中的display属性之li元素
- python爬虫下载-python爬虫之下载文件的方式总结以及程序实例
- 一直以来伴随我的一些学习习惯(四):知识结构
- JDBC的入门案列以及JDBC的对事务的管理
- 建造者模式 coding
- 如何使用matlab的siso,利用Matlab内建程式SISODesignTool完成系统分析(Matlab61)开启.PDF...
- 红旗linux修改个人密码,LINUX红旗5.0的用户名和密码!
- JSONObject与GSON的一些常用的方法的使用
- JavaScript之JS单线程|事件循环|事件队列|执行栈
- Ajax异步刷新,测试用户名是否被注册
- pyinstaller遇到的问题总结
- 最新软件注册码,总有你要的!
- Servlet容器和IOC容器
- https://github.com/liuyi01/kubernetes-starterhttps://github.com/liuyi01/kubernetes-starter
- SSH 端口转发与 SOCKS 代理
- Antv X6 动态连线
- wim文件怎么安装系统 wim文件安装系统教程
- Python入门学习(五)
- 医疗行业:容灾备份平台建设及运维难点
- 论文代码复现之:GPT-too: A Language-Model-First Approach for AMR-to-Text-Generation(ARM-to-text)