如何优雅的写UI――(3)添加MFC选项卡

匿名 (未验证) 提交于 2019-12-03 00:39:02

窗体创建完成,接下来我们讲讲控件的使用

class CtabView : public CFormView {     ......     ......     public:           CMFCTabCtrl m_tab;            }    

在初始化中动态创建选项卡并设置选项卡的样式,这里我们使用了Creat函数,他的原型是

BOOL Create(Style style, const RECT& rect, CWnd* pParentWnd, UINT nID, Location location = LOCATION_BOTTOM, BOOL bCloseBtn = FALSE);

是一个枚举类型,它定义了选项卡的样式,基本都为3D的样式

public:


enum Style

0,
1,
2,
3,
4,
5,
6,
7,

第二个参数:设置选项卡大小

第三个参数:窗体句柄

第四个参数:设置选项卡控件ID

第五个参数:设置选项卡标签位置,MFC只给了上下两个方向来显示选项卡标签的位置

public:





第六个参数:是否带关闭按钮,关闭按钮的逻辑是要自己实现的,这个我们下面再说。

添加选项卡代码:

void CtabView::OnInitialUpdate()
{

RecalcLayout();




if (!m_tab.Create(CMFCTabCtrl::STYLE_3D_ONENOTE, rc, this, CMFCTabCtrl::RESIZE_HORIZ, CMFCTabCtrl::LOCATION_TOP))

return

}

创建好的选显卡是光秃秃的没有任何标签页的,这个需要我们手动添加

如何给选项卡创建标签页 ,这需要我们新建窗体在选项卡中显示

创建三个Dialog窗体备用

给窗体添加类,自动生成就可以

之后咱们给选项卡添加标签页,在选项卡中引用我们刚刚新建的Dialog类的指针

#include "Dialog1.h" #include "Dialog2.h" #include "Dialog3.h"  class CtabView : public CFormView {     public:     CMFCTabCtrl m_tab;     CDialog1 *m_dlg1;     CDialog2 *m_dlg2;     CDialog3 *m_dlg3;  }

在程序初始化时动态创建的窗体

void CtabView::OnInitialUpdate()
{



















}

运行一下看一下效果

打开窗体属性,将Style属性由弹出Popup改为Child子窗口,所有的标签用的窗体都要这么改

效果

里面的窗体太难看了了,把边框和标题去掉就好了

窗体属性,把Border改为None就好了

最终效果

原文:https://www.cnblogs.com/ye-ming/p/9266558.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!