MFC Tab 控件控制:不同子页多个控件操作指南
可以通过以下步骤来控制 TAB 控件上选择不同子页里面的多个控件操作:
-
在 MFC 主窗口的 OnInitDialog() 函数中,获取 TAB 控件的句柄,并添加 TAB 页的名称。
-
在每个 TAB 页的 OnInitDialog() 函数中,获取 TAB 页上的所有控件的句柄,并保存到变量中。
-
在主窗口的 OnTabSelChange() 函数中,获取当前选择的 TAB 页索引,并根据索引获取对应的控件句柄。
-
使用控件句柄来操作对应的控件。
例如,假设在 TAB 控件的第一个子页上有一个按钮控件和一个文本框控件,想要在主窗口的按钮控件上单击时,根据当前选择的 TAB 页,操作对应的文本框控件。可以按照以下步骤进行操作:
- 在主窗口的 OnInitDialog() 函数中,获取 TAB 控件的句柄,并添加 TAB 页的名称:
m_tabCtrl = (CTabCtrl*)GetDlgItem(IDC_TAB_CTRL);
m_tabCtrl->InsertItem(0, _T("Tab 1"));
m_tabCtrl->InsertItem(1, _T("Tab 2"));
- 在 TAB 页的 OnInitDialog() 函数中,获取 TAB 页上的所有控件的句柄,并保存到变量中:
m_btnCtrl = (CButton*)GetDlgItem(IDC_BTN_CTRL);
m_editCtrl = (CEdit*)GetDlgItem(IDC_EDIT_CTRL);
- 在主窗口的 OnTabSelChange() 函数中,获取当前选择的 TAB 页索引,并根据索引获取对应的控件句柄:
int nCurSel = m_tabCtrl->GetCurSel();
switch (nCurSel)
{
case 0:
m_pCurCtrl = m_editCtrl;
break;
case 1:
// TODO: 获取第二个 TAB 页上的控件句柄
break;
default:
break;
}
- 使用控件句柄来操作对应的控件:
m_pCurCtrl->SetWindowText(_T("Hello World!"));
原文地址: https://www.cveoy.top/t/topic/ovmC 著作权归作者所有。请勿转载和采集!