zoukankan      html  css  js  c++  java
  • TabCtrl使用

    TabCtrl使用

    0x1 新建子页面

    插入三个对话框,ID分别为:IDD_PAGE_FILE、IDD_PAGE_NETWORK、IDD_PAGE_PROCESS

    工具箱-【属性】-【Style】设置为【child】,【Border】设置为【None】

    1、绑定类

    每个对话框绑定一个对话框类

    控件ID 绑定类名 作用
    IDD_PAGE_FILE CPAGEFile 文件页
    IDD_PAGE_NETWORK CPAGENet 网络页
    IDD_PAGE_PROCESS CPAGEProc 进程页

    0x2 调用对话框的页面操作

    1、绑定变量

    添加一个Tab Control控件,并为其关联一个CTabCtrl类型的控件变量m_tabCtrl,ID为IDC_TAB_DEMO

    在【MFC_05_TabCtrlDlg.h】文件里声明这三个类。

    	//Tab
    	CPAGEFile m_FilePage;   // 文件页
    	CPAGENet  m_NetPage;    // 网络页
    	CPAGEProc m_ProcPage;   // 进程页
    
    #define MAX_DLG_PAGE 5     // 默认值,被切换的对话框数量
    	CDialog		 *m_pDialog[MAX_DLG_PAGE];   // 多少个选项
    	int			 m_CurSelTab;                // 当前选中的选项
    

    2、在OnInitDialog()初始化

    以下所有代码都需要在OnInitDialog()函数中进行写入

    m_tabCtrl.InsertItem(0, _T("文件"));
    m_tabCtrl.InsertItem(1, _T("网络"));
    m_tabCtrl.InsertItem(2, _T("进程"));
    

    调整大小代码:

    m_tabCtrl.SetPadding(19);            // SetPadding设置选项卡之间间隔
    m_tabCtrl.SetMinTabWidth(50);        // SetMinTabWidth设置最小选项卡宽度
    m_tabCtrl.SetItemSize(CSize(50,25)); // SetItemSize设置选项卡设置高度
    

    非模态方式创建三个子对话框:

    m_FilePage.Create(IDD_PAGE_FILE, &m_tabCtrl);
    m_NetPage.Create(IDD_PAGE_NETWORK, &m_tabCtrl);
    m_ProcPage.Create(IDD_PAGE_PROCESS, &m_tabCtrl);
    

    设定在Tab内显示的范围

    //设定在Tab内显示的范围
    CRect rc;
    m_tabCtrl.GetClientRect(rc);
    rc.top += 25;
    // 	rc.bottom -= 8;
    // 	rc.left += 8;
    // 	rc.right -= 8;
    
    m_FilePage.MoveWindow(&rc);
    m_NetPage.MoveWindow(&rc);
    m_ProcPage.MoveWindow(&rc);
    

    设置显示

    //把对话框对象指针保存起来
    m_pDialog[0] = &m_FilePage;
    m_pDialog[1] = &m_NetPage;
    m_pDialog[2] = &m_ProcPage;
    //显示初始页面
    m_pDialog[0]->ShowWindow(SW_SHOW);
    m_pDialog[1]->ShowWindow(SW_HIDE);
    m_pDialog[2]->ShowWindow(SW_HIDE);
    
    //保存当前选择
    m_CurSelTab = 0;
    

    3、TCN_SELCHANGE消息处理函数

    TabCtrl控件属性页-【控件事件】-【TCN_SELCHANGE】,然后就可以进行选项卡之间的切换了。

    
    void CMFC05TabCtrlDlg::OnTcnSelchangeTabDemo(NMHDR *pNMHDR, LRESULT *pResult)
    {
    	// TODO: 在此添加控件通知处理程序代码
    	m_pDialog[m_CurSelTab]->ShowWindow(SW_HIDE);  // 把当前的界面隐藏
    	m_CurSelTab = m_tabCtrl.GetCurSel();          // 获取选中的界面选项索引值
    	if (m_pDialog[m_CurSelTab])
    	{
    		m_pDialog[m_CurSelTab]->ShowWindow(SW_SHOW);  // 只显示选中的界面选项
    	}
    	*pResult = 0;
    }
    
  • 相关阅读:
    工业互联网网络安全渗透测试技术研究
    ios加固,ios代码混淆,ios代码混淆工具, iOS源码混淆使用说明详解
    Java代码加密,Java加密方式,Java加密使用说明
    移动App安全等级保护建议
    Android APP安全问题应对办法的探讨
    工业互联网环境下的工业控制系统安全防护
    保护IoT设备安全的5种方法
    移动App安全等级保护测评防护要点
    Windows下给IDApro 安装yara-python 和findcrypt
    gradle-下载地址
  • 原文地址:https://www.cnblogs.com/17bdw/p/10352440.html
Copyright © 2011-2022 走看看