• CTabCtrl 选项卡


    1、

    构造

    CTabCtrl构造一个CTabCtrl对象
    Create创建一个标签控件并将它与一个CTabCtrl对象连接

    属性

    GetImageList获取与一个标签控件相关的图像列表
    SetImageList将一个图像列表分配给一个标签控件
    GetItemCount获取此标签控件中的标签的数目
    GetItem获取此标签控件中的某一个标签的信息
    SetItemExtra设置一个标签控件中的每一个标签为应用程序定义的数据所保留的字节数
    GetItemRect获取一个标签控件中的一个标签的边界矩形
    GetCurSel确定在一个标签控件中当前选择的标签
    SetCurSel在一个标签控件中选择一个标签
    SetCurFocus将焦点设置到一个标签控件中的指定标签上
    SetItemSize设置某个项的宽度和高度
    SetPadding设置一个标签控件中的每一个标签的图标和标签周围的空间(填料)
    GetRowCount获取一个标签控件中的标签的当前行数
    GetToolTips获取与一个标签控件相关联的工具提示控件的句柄
    SetToolTips将一个工具提示控件赋给一个标签控件
    GetCurFocus获取一个标签控件的具有当前焦点的标签
    SetMinTabWidth设置一个标签控件中的项的最小宽度
    GetExtendedStyle获取标签控件当前使用的扩展风格
    SetExTendedStyle设置一个标签控件的扩展风格
    GetItemState获取指定标签控件项的状态
    SetItemState设置指定标签控件项的状态

    操作

    InsertItem在一个标签控件中插入一个新的标签
    DeleteItem从一个标签控件中删除一项
    DeleteAllItems从一个标签控件中删除所有的项
    AdjustRect根据一个给定的窗口矩形来估算一个标签控件的的显示区域,或根据一个给定的显示区域来估算与之对应的窗口矩形
    RemoveImage从一个标签控件的图像列表中删除一个图像
    HitTest确定哪一个标签(如果有的话)位于指定的屏幕位置
    DeselectAll重新设置一个标签控件中的项,清除任何被按下的项
    HighlightItem设置一个标签项的加亮状态

    重载函数

    DrawItem绘制一个标签控件的指定项

    2、常用示例

    2.1 添加一个对话框程序,在主界面中添加一个TabCtrl控件,并添加一个变量m_TabCtrl

    2.2 添加三个空对话框,ID分别为IDD_DiALOG1,IDD_DiALOG2,IDD_DiALOG3,并关联三个对话框的类,类名分别为CLCDlg1,CLCDlg2,CLCDlg3

    分别删除对话框中的确定和取消按钮并加上不同的静态文字

    2.3 在主对话框的头文件中添加三个对话框变量,并加上头文件。

    CLCDlg1 m_dlg1; CLCDlg2 m_dlg2; CLCDlg3 m_dlg3;

    #include "LCDlg1.h"
    #include "LCDlg2.h"
    #include "LCDlg3.h"

    2.4 重写主对话框的OnInitDialog函数。

    1. CSize size;
    2. size.cx=10;size.cy=10;
    3. m_TabCtrl.SetPadding(size);//设置选项卡之间间隔
    4. m_TabCtrl.InsertItem(0,_T("文件/文件夹"));//插入一个新的标签
    5. m_TabCtrl.InsertItem(1,_T("快捷方式"));
    6. m_TabCtrl.InsertItem(2,_T("快捷安装"));
    7. m_TabCtrl.HighlightItem(0,TRUE);//设置一个标签项的加亮状态
    8. m_TabCtrl.HighlightItem(1,TRUE);
    9. m_TabCtrl.HighlightItem(2,TRUE);
    10. CRect rect; rect.left=50;rect.right=500;rect.top=20;rect.bottom=50;
    11. m_TabCtrl.AdjustRect(TRUE,rect);//根据一个给定的窗口矩形来估算这个标签控件的显示区域
    12. m_dlg1.Create(IDD_DIALOG1,GetDlgItem(IDD_DIALOG1));
    13. m_dlg2.Create(IDD_DIALOG2,GetDlgItem(IDD_DIALOG2));
    14. m_dlg3.Create(IDD_DIALOG3,GetDlgItem(IDD_DIALOG3));
    15. m_TabCtrl.GetClientRect(&rect);
    16. rect.top+=100;
    17. //rect.bottom-=4;
    18. rect.left+=100;
    19. rect.right-=8;
    20. m_dlg1.MoveWindow(&rect);
    21. m_dlg2.MoveWindow(&rect);
    22. m_dlg3.MoveWindow(&rect);
    23. m_dlg1.ShowWindow(TRUE);
    24. m_TabCtrl.SetCurSel(1);//选择当前标签索引为1

    2.5 为TabCtrl控件添加OnSelect()消息

    1. void CLocalSpeedyPPage::OnSelchangeLcTab1(NMHDR *pNMHDR, LRESULT *pResult)
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. int curSel= m_TabCtrl.GetCurSel();//当前选择的标签
    5. switch(curSel)
    6. {
    7. case 0:
    8. m_dlg1.ShowWindow(TRUE);
    9. m_dlg2.ShowWindow(FALSE);
    10. m_dlg3.ShowWindow(FALSE);
    11. break;
    12. case 1:
    13. m_dlg1.ShowWindow(FALSE);
    14. m_dlg2.ShowWindow(TRUE);
    15. m_dlg3.ShowWindow(FALSE);
    16. break;
    17. case 2:
    18. m_dlg1.ShowWindow(FALSE);
    19. m_dlg2.ShowWindow(FALSE);
    20. m_dlg3.ShowWindow(TRUE);
    21. break;
    22. }
    23. *pResult = 0;
    24. }

  • 相关阅读:
    终于有阿里p9架构师分享出困扰我多年的分布式系统开发实战文档
    球形罩铆接机械臂设计(lunwen+开题报告+指导记录+设计图纸+PLC控制程序)
    JS函数(function)的定义和使用
    你对lambda表达式的使用方法以及底层原理了解吗?
    我从未结束的Java之旅(二)
    java反射详解及优化
    【精品】轻松部署ceph分布式存储集群
    16:00面试,16:08就出来了,问的问题有点变态。。。
    ChatGLM 实践指南
    GraphQL 进阶——DataLoader
  • 原文地址:https://blog.csdn.net/zxf347085420/article/details/133831411