• 文件夹Tab Ctrl


    http://blog.163.com/gz_ricky/blog/static/1820491182011061180897/  转载
    Tab Ctrl
    
    Tab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用 
    BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:
    
    TCS_BUTTONS 使用按钮来表示页选择位置 
    TCS_MULTILINE 分行显示页选择位置 
    TCS_SINGLELINE 只使用一行显示页选择位置 
    在控件创建后必需向其中添加页面才可以使用,添加页面的函数为: 
    BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem为位置,从零开始,lpszItem为页选择位置上显示的文字。如果你希望在页选择位置处显示一个图标,你可以调用 
    BOOL InsertItem( int nItem, LPCTSTR lpszItem, int nImage );nImage指明所使用的图片位置。(在此之前必须调用CImageList * SetImageList( CImageList * pImageList );设置正确的ImageList)
    
    此外CTabCtrl还提供了一些函数用于得到/修改控件的状态。 
    int GetCurSel( )/int SetCurSel( int nItem );用于得到/设置当前被选中的页位置。 
    BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于删除指定/所有页面。 
    void RemoveImage( int nImage );用于删除某页选择位置上的图标。
    
    属性页控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同void OnXXXTab(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:
    
    TCN_SELCHANGE 在当前页改变后发送,所用结构:NMHDR 
    TCN_SELCHANGING 在当前页改变时发送可以通过返回TRUE来禁止页面的改变,所用结构:NMHDR
    
    一般来讲在当前页发生改变时需要隐藏当前的一些子窗口,并显示其它的子窗口。下面的伪代码演示了如何使用属性页控件:
    
    CParentWnd::OnCreate(...) 
    { 
    m_tab.Create(...); 
    m_tab.InsertItem(0,"Option 1"); 
    m_tab.InsertItem(1,"Option 2"); 
    Create a edit box as the m_tab's Child 
    Create a static box as the m_tab's Child 
    edit_box.ShowWindow(SW_SHOW); // edit box在属性页的第一页 
    static_box.ShowWindow(SW_HIDE); // static box在属性页的第二页 
    } 
    void CParentWnd::OnSelectChangeTab(NMHDR* pNMHDR, LRESULT* pResult) 
    {//处理页选择改变后的消息 
    if(m_tab.GetCurSel()==0) 
    {//根据当前页显示/隐藏不同的子窗口 
    edit_box.ShowWindow(SW_SHOW); 
    static_box.ShowWindow(SW_HIDE); 
    } 
    else 
    {// 
    edit_box.ShowWindow(SW_HIDE); 
    static_box.ShowWindow(SW_SHOW); 
    } 
    }
    
     
  • 相关阅读:
    万字长文|Hadoop入门笔记(附资料)
    大数据最后一公里——2021年五大开源数据可视化BI方案对比
    非结构化数据怎么存?——开源对象存储方案介绍
    (三、四)Superset 1.3图表篇——透视表-Pivot Table
    数据湖搭建指南——几个核心问题
    (二)Superset 1.3图表篇——Time-series Table
    DorisDB升级为StarRocks,全面开源!
    (一)Superset 1.3图表篇——Table
    HCNP Routing&Switching之BGP基础
    HCNP Routing&Switching之路由引入导致的问题及解决方案
  • 原文地址:https://www.cnblogs.com/IMyLife/p/4826158.html
Copyright © 2020-2023  润新知