Loading... ![image.png](http://www.irohane.top/usr/uploads/2021/02/253770004.png) ![image.png](http://www.irohane.top/usr/uploads/2021/02/517467893.png)![image.png](http://www.irohane.top/usr/uploads/2021/02/3688170648.png) ![image.png](http://www.irohane.top/usr/uploads/2021/02/3325688574.png) 如果没有资源视图 = 视图-》其他窗口-》资源视图![image.png](http://www.irohane.top/usr/uploads/2021/02/1096757890.png) 使用类向导:快捷键SHIFT + CTRL + X ![image.png](http://www.irohane.top/usr/uploads/2021/02/1673250167.png) 新添加一个 TAB选项类 ![image.png](http://www.irohane.top/usr/uploads/2021/02/2715481511.png) 添加切换视图函数, ![image.png](http://www.irohane.top/usr/uploads/2021/02/3647716134.png) 返回到资源视图 ![image.png](http://www.irohane.top/usr/uploads/2021/02/1716900299.png) 这里变量类型更改之后可能变化但是没关系 ![image.png](http://www.irohane.top/usr/uploads/2021/02/2617111133.png) 在主窗口包含以下创建的TABS类 ![image.png](http://www.irohane.top/usr/uploads/2021/02/2584235320.png) ![image.png](http://www.irohane.top/usr/uploads/2021/02/2551174271.png) 进入类向导-添加第一个窗口程序 ![image.png](http://www.irohane.top/usr/uploads/2021/02/3184652746.png)![image.png](http://www.irohane.top/usr/uploads/2021/02/1987563119.png) 对新创建的窗口进行样式修改 ![image.png](http://www.irohane.top/usr/uploads/2021/02/1422908259.png) ![image.png](http://www.irohane.top/usr/uploads/2021/02/3948595345.png) 对控件进行封装 在TAB控件种创建窗口列表 ![image.png](http://www.irohane.top/usr/uploads/2021/02/3650699990.png) ![image.png](http://www.irohane.top/usr/uploads/2021/02/1987046042.png) ```cpp void D_TABS::OnTcnSelchange(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: 在此添加控件通知处理程序代码 int SelPos = GetCurSel(); for (int i = 0; i < m_vclist.size(); i++) { if (i == SelPos) { m_vclist[i]->ShowWindow(SW_SHOW); continue; } m_vclist[i]->ShowWindow(SW_HIDE); } *pResult = 0; } void D_TABS::InitTab(int Count, ...) { va_list v1;//固定写法 va_start(v1, Count); for (int i = 0;i < Count; i++) { //获取第一个选项 wchar_t* szTabItem = va_arg(v1, wchar_t*); CDialogEx* pDlg = va_arg(v1, CDialogEx*); DWORD dwid = va_arg(v1, DWORD); //创建选项 InsertItem(i, szTabItem); pDlg->Create(dwid, this); //调整窗口距离 CRect rc = {}; GetClientRect(&rc); //缩小矩形 rc.DeflateRect(1, 23, 1, 1); //移动 pDlg->MoveWindow(rc); m_vclist.push_back(pDlg);//添加数据 每次添加 【方便】 } m_vclist[0]->ShowWindow(SW_SHOW); va_end(v1);//固定格式 } ``` 主窗口创建 ![image.png](http://www.irohane.top/usr/uploads/2021/02/1775539452.png) ![image.png](http://www.irohane.top/usr/uploads/2021/02/2869714898.png) ![image.png](http://www.irohane.top/usr/uploads/2021/02/1175593231.png) 如果还有 显示的窗口 在主程序包含现实的头文件 在 InitTab种 1增加 new 新的窗口 即可 ![image.png](http://www.irohane.top/usr/uploads/2021/02/185872107.png) 获取显示对话框的ID ![image.png](http://www.irohane.top/usr/uploads/2021/02/1962193223.png) 成功显示 ![image.png](http://www.irohane.top/usr/uploads/2021/02/254948658.png) # 隐藏Menu 在MainFrm.cpp的函数“OnCreate“中,添加如下程序 //GetMenu()->GetSubMenu(0)->RemoveMenu(0,MF_BYPOSITION);//将1菜单-->1子菜单隐藏 // GetMenu()->RemoveMenu(0,MF_BYPOSITION);//将1菜单整个隐藏 最后修改:2022 年 04 月 01 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏