说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

问一个关于关于tabctrl的问题,

编辑:说三道四文库 发布时间:2018-05-24 10:06
HTML文档下载 WORD文档下载 PDF文档下载
、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,
根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl
类变量绑定在一起,这里设为m_tabctrl

2、创建一个新的对话框资源,比如insert菜单选择new form,其属性作如下修改:
Border:none //边界为空,这样它就没了标题栏
Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。
其他默认即可

在上面加一些控件什么的,具体操作跟普通对话框没有区别。
完成后从这个对话框模板生成一个新的对话框类。
//这一步他说创建一个新的对话框类,我把基类不管是设为CDialog还是CPropertyPage后面引起的问题还是一样//

3、在主对话框中为新添加进来的类增加一个变量:
如:CDialog m_mm1;//我直接从主对话框的add member variable添加的

4、在主对话框的OnInitDialog()函数中添加如下类似的代码:
TCITEM item;
item.mask = TCIF_TEXT;
item.pszText = "第一页";//标题
m_tabctrl.InsertItem (0,&item);//插入一页
m_mm1.Create (IDD_MY_DIALOG,&m_tabctrl);
CRect r;
m_tabctrl.GetClientRect (&r);//获得区域
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);//确保显示在page页面中
……


//我的问题:
根据这个文章,我成功的在我的tabctrl控件的第一个page里显示了我所新创建的对话框IDD_MY_DIALOG的内容,但是随后我发现:这个对话框的所有事件全不响应,例如,我的新创建的对话框有个按钮,他的单击事件是:MessageBox("OK");我点击后,全无反应,这是什么原因啊?所有的控件皆是如此,晕了!!还有一个相关联的问题就是,我的工程新加入了窗体,这个窗体显示后,上面的控件也是全无反应,望各位高手不吝赐教,小弟不胜感激!!!(请说的详细一些啊)//

不至于吧,你新加的窗口是不是放到TabPage里面的?

直接DoModal显示也不响应吗?
你看看你的新窗体是否已经有了命名 双击下新窗体 看已经命名了么
命名了,其实就是在TabPage中添加控件,不能控制,如添加按扭,单击没有任何反映
不解 希望高手来看看 帮顶
知道了 ,哈哈
帅哥楼主,问个事儿哈!!我也遇到了一模一样的问题,请问你是如何解决的阿!!!谢谢了!!我初学者,望各位大虾多多关照阿!
什么原因?
我的工程是一个串口收发数据的程序,我用的是serialport类,主对话框界面中有用到tab分页,从而有了两个新的对话框类,方法与楼主一致,该对话框上有若干按钮、复选框等控件,通过点击等操作,调用serialport类的writetoport函数发送数据,但是出错,报错说writetoport为定义。我又定义了一个指向父窗口的指针,仍然不行!!好恼火哦!哭老
LZ太不厚道了,搞清楚状况也不说下,我也遇到这种情况了,请LZ现身啊
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘