zoukankan      html  css  js  c++  java
  • 023.MFC_属性页控件(tab control)

    属性页控件
    属性页->选项卡->对话框
    CTabCtrl
    一、建立名为tabCtrl的mfc工程,添加Tab Control控件,设置属性ID为IDC_TAB,并添加变量m_tab

    在tabCtrlDlg.cpp文件函数BOOL CtabCtrlDlg::OnInitDialog()中添加
    // TODO: 在此添加额外的初始化代码
    m_tab.InsertItem(0,_T("第一页"));
    m_tab.InsertItem(1,_T("第二页"));
    二、在资源视图中添加两个dialog,分别设置属性ID为 IDD_PAGE1,IDD_PAGE2。因为dialog是嵌入到tab里边,所以设置style ->child,Border->None(IDD_PAGE1,IDD_PAGE2都要设置);

    为属性ID为 IDD_PAGE1 的dialog添加类CPage1Dlg ,属性ID为 IDD_PAGE2 的dialog添加类 CPage2Dlg
    在tabCtrlDlg.h中添加两个变量
    // 实现
    protected:
    HICON m_hIcon;
    CPage1Dlg m_page1;
    CPage2Dlg m_page2;
    记得在tabCtrlDlg.h中添加头文件
    #include "Page1Dlg.h"
    #include "Page2Dlg.h"


    为了显示添加的对话框需在CtabCtrlDlg::OnInitDialog()中继续添加
    // TODO: 在此添加额外的初始化代码
    m_tab.InsertItem(0,_T("第一页"));
    m_tab.InsertItem(1,_T("第二页"));

    m_page1.Create(MAKEINTRESOURCE(IDD_PAGE1),&m_tab);
    m_page2.Create(MAKEINTRESOURCE(IDD_PAGE2),&m_tab);

    CRect rc;
    m_tab.GetClientRect(rc);
    rc.top += 30;
    rc.left += 8;
    rc.right -= 8;
    rc.bottom -= 8;
    m_page1.MoveWindow(rc);
    m_page2.MoveWindow(rc);

    m_page1.ShowWindow(SW_SHOW); //显示对话框1
    三、为了使tab页有切换效果需在主窗口IDD_TABCTRL_DIALOG中添加事件处理函数如图步骤,并添加代码

    在tabCtrlDlg.cpp文件中添加
    void CtabCtrlDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
    {
    // TODO: 在此添加控件通知处理程序代码
    switch(m_tab.GetCurSel())
    {
    case 0:
    m_page1.ShowWindow(SW_SHOW);
    m_page2.ShowWindow(SW_HIDE);
    break;
    case 1:
    m_page1.ShowWindow(SW_HIDE);
    m_page2.ShowWindow(SW_SHOW);
    break;
    default:
    break;
    }
    *pResult = 0;
    }

  • 相关阅读:
    physicsbased animation阅读计划
    读代码的一点感想
    Paired Joint Coordinates
    坐标变换
    ADO.NET用法示例
    希腊字母读法
    数据库系统概论(第三版)学习笔记
    在网页里让文本框只能输入数字的一种方法。外加回车换Tab (javascript key键的使用)+禁止切换输入法转
    常用的一些javascript小技巧
    在.NET2.0中上传文件操作(解决了上传文件大小和多文件限制)转
  • 原文地址:https://www.cnblogs.com/Malphite/p/10828774.html
Copyright © 2011-2022 走看看