zoukankan      html  css  js  c++  java
  • 【转】TabControl使用指南

    转自:http://hi.baidu.com/moxingfen/blog/item/7576ec1263992258f819b8eb.html

        http://hi.baidu.com/moxingfen/blog/item/0d12a6f03481c8a6a40f52eb.html/cmtid/85efe86d6e59e1f7431694d5

    建立一个MFC项目,在自己的窗口上划一个TabControl出来。然后把这个控件关联上一个control的变量,叫m_page.

    //Add an item to the tab_control

        m_page.InsertItem(0, _T("Page1"));
        m_page.InsertItem(1, _T("Page2"));
        m_page.InsertItem(2, _T("Page3"));

    这就是向其中添加标签。

    然后,插入一个对话框资源,上面随便放点什么,把下列属性改一下:
    Border : none
    Style : Child
    然后为这个对话框创建一个类。就叫CPage1吧。。
    然后在主窗口的头文件中加上:
    #include "Page1.h"

    在主窗口的代码文件头部加上:
    CPage1 m_page1;

    然后在装载主窗口的那个过程(OnInitDialog)里写:
        m_page1.Create(IDD_PAGE1, &m_page);
        m_page1.SetWindowPos(NULL, 10, 30, 400, 100, SWP_SHOWWINDOW);
    这样,这个子窗口就出现在主窗口上了。

     在刚才的TabControl上按右键,选择添加事件处理程序,类列表里选主窗口的那个类,消息类型就不要动了,名字自己起。


    void CMainDlg::OnTcnSelchange_Page(NMHDR *pNMHDR, LRESULT *pResult)
    {
        //Get current pos
        CRect r;
        m_page.GetClientRect (&r);
        
        //which one is selected now ?
        switch(m_page.GetCurSel())
        {
            case 0:
            m_page1.SetWindowPos(NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);
            break;

            case 1:
            m_page1.SetWindowPos(NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
            break;

            case 2:
            m_page1.SetWindowPos(NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
            break;
        }
        *pResult = 0;
    }

    当然,可以开个数组,存对话框对象的指针,然后就不用这样写switch了。
  • 相关阅读:
    人事面试13
    人事面试测试篇1
    人事面试16
    人事面试15
    人事面试测试篇3
    人事面试测试篇2
    人事面试14
    Oracle Compile 编译 无效对象
    Oracle 移动数据文件的操作方法
    Oracle 9i 从9.2.0.1升级到 9.2.0.6 步骤
  • 原文地址:https://www.cnblogs.com/abinxm/p/1821685.html
Copyright © 2011-2022 走看看