可以通过以下步骤来控制 TAB 控件上选择不同子页里面的多个控件操作:

  1. 在 MFC 主窗口的 OnInitDialog() 函数中,获取 TAB 控件的句柄,并添加 TAB 页的名称。

  2. 在每个 TAB 页的 OnInitDialog() 函数中,获取 TAB 页上的所有控件的句柄,并保存到变量中。

  3. 在主窗口的 OnTabSelChange() 函数中,获取当前选择的 TAB 页索引,并根据索引获取对应的控件句柄。

  4. 使用控件句柄来操作对应的控件。

例如,假设在 TAB 控件的第一个子页上有一个按钮控件和一个文本框控件,想要在主窗口的按钮控件上单击时,根据当前选择的 TAB 页,操作对应的文本框控件。可以按照以下步骤进行操作:

  1. 在主窗口的 OnInitDialog() 函数中,获取 TAB 控件的句柄,并添加 TAB 页的名称:
m_tabCtrl = (CTabCtrl*)GetDlgItem(IDC_TAB_CTRL);
m_tabCtrl->InsertItem(0, _T("Tab 1"));
m_tabCtrl->InsertItem(1, _T("Tab 2"));
  1. 在 TAB 页的 OnInitDialog() 函数中,获取 TAB 页上的所有控件的句柄,并保存到变量中:
m_btnCtrl = (CButton*)GetDlgItem(IDC_BTN_CTRL);
m_editCtrl = (CEdit*)GetDlgItem(IDC_EDIT_CTRL);
  1. 在主窗口的 OnTabSelChange() 函数中,获取当前选择的 TAB 页索引,并根据索引获取对应的控件句柄:
int nCurSel = m_tabCtrl->GetCurSel();
switch (nCurSel)
{
    case 0:
        m_pCurCtrl = m_editCtrl;
        break;
    case 1:
        // TODO: 获取第二个 TAB 页上的控件句柄
        break;
    default:
        break;
}
  1. 使用控件句柄来操作对应的控件:
m_pCurCtrl->SetWindowText(_T("Hello World!"));
MFC Tab 控件控制:不同子页多个控件操作指南

原文地址: https://www.cveoy.top/t/topic/ovmC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录