您的位置 首页 > 娱乐休闲

MFC|Tab控件的选项卡切换及如何设置子窗口控件的默认焦点

创建TabControl控件主要步骤如下:

1 将TabControl控件拖入主对话框Assistants中,并且创建一个控件变量m_mainTab。

2 创建四个子对话框。

3 把四个子对话框的属性Style改为Child,Border改为None。

4 为四个子对话框分别建立四个类。

5 将四个子对话框的类头文件都加入主对话框头文件中。

6 在主对话框头文件中,创建四个子对话框类的对象。

如下图:

7 然后在OnInitDialog()中添加如下代码:

//向标签控件中添加选项卡

m_mainTab.InsertItem(0, "RecordsNotes", 0);

m_mainTab.InsertItem(1, "TextBox", 1);

m_mainTab.InsertItem(2, "Details", 2);

m_mainTab.InsertItem(3, "NoteDB", 3);

//创建子窗口

m_Records.Create(IDD_Records, &m_mainTab);

m_Tex(IDD_TextBox, &m_mainTab);

m_De(IDD_Details, &m_mainTab);

m_No(IDD_NoteDB, &m_mainTab);

CRect clientRC;

m_mainTab.GetClientRect(clientRC); //获取标签客户区域

clien(0, 25, 0, 0); //减少客户区域大小,左,上,右

m_Records.MoveWindow(clientRC); //移动子窗口

m_Tex(clientRC);

m_De(clientRC);

m_No(clientRC);

m_Records.ShowWindow(SW_SHOW); //显示子窗口

m_mainTab.SetCurSel(0); //设置默认选中的标签页

m_Records.GetDlgItem(IDC_EDIT1)->SetFocus();

//需要将对话框中的OnInitDialog的最后那句return设置为"FALSE"。

8 选项卡切换函数

双击TabControl控件,会自动添加函数OnSelchangeTab()框架,在其中添加如下代码:

void CAssistantsDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult) { int nCurSel = m_mainTab.GetCurSel(); if (nCurSel == 0) { m_Records.ShowWindow(SW_SHOW); m_Tex(SW_HIDE); m_De(SW_HIDE); m_No(SW_HIDE); m_Records.GetDlgItem(IDC_EDIT1)->SetFocus(); } else if (nCurSel == 1) { m_Tex(SW_SHOW); m_Records.ShowWindow(SW_HIDE); m_De(SW_HIDE); m_No(SW_HIDE); m_Tex(IDC_textbox)->SetFocus(); } else if (nCurSel == 2) { m_Tex(SW_HIDE); m_Records.ShowWindow(SW_HIDE); m_De(SW_SHOW); m_No(SW_HIDE); m_De(IDC_Details)->SetFocus(); } else if (nCurSel == 3) { m_Tex(SW_HIDE); m_Records.ShowWindow(SW_HIDE); m_De(SW_HIDE); m_No(SW_SHOW); m_No(IDC_RICHEDIT1)->SetFocus(); } *pResult = 0; }

如上代码,如果是对话框自身的控件设置焦点,直接使用GetDlgItem(IDC_RICHEDIT1)->SetFocus();就行了,如果是在主对话框(主窗口)中设置子对话框(子窗口)中控件的焦点,则必须在前面冠以子窗口对象,如m_NoteDB来进行引用。

如果在主窗口中设置子窗口中的文本也是如此:

m_Tex(str); //m_TextBox是子窗口对象,m_textblock是子窗口中的控件关联的变量

9 程序运行效果:

-End-

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“mfc如何给按钮添加图片,mfc怎么给按钮添加图片,mfc按钮添加图片效果,vs的mfc如何添加图片”边界阅读