MFC编程tab控件子对话框显示问题
我新建了一个主对话框,添加了Tab控件,又新建了三个子对话框,用Tab控件使它们与MainDlg连接,然后对子对话框添加了相应的类Page1,Page2,Page3继承自CPropertyPage。完了之后也达到了可以通过点击tab键切换子对话框.
但是,在Page1对话框中添加了按钮响应函数,这个函数在子对话框类里,在运行时,不知道为什么按这个按钮不响应;
在Page2中有文本框,单击也没响应,因此也无法填写参数数值,Page3 也有同样问题。还烦请各位高手指点
下面是 关键代码:
BOOL CSourceSet::OnInitDialog()
{
CDialog::OnInitDialog();
//为Tab Control增加三个页面
m_tabSource.InsertItem(0, _T("点光源"));
m_tabSource.InsertItem(1, _T("线光源"));
m_tabSource.InsertItem(2, _T("柱面光源"));
//创建三个对话框
m_Page1.Create(IDD_PROPPAGE_POINT, &m_tabSource);
m_Page2.Create(IDD_PROPPAGE_LINE, &m_tabSource);
m_Page3.Create(IDD_PROPPAGE_COLUMN, &m_tabSource);
//设定在Tab内显示的范围
CRect rc;
m_tabSource.GetClientRect(rc);
rc.top += 20;
rc.bottom -= 8;
rc.left += 8;
rc.right -= 8;
m_Page1.MoveWindow(&rc);
m_Page2.MoveWindow(&rc);
m_Page3.MoveWindow(&rc);
//把对话框对象指针保存起来
pDialog[0] = & m_Page1;
pDialog[1] = & m_Page2;
pDialog[2] = & m_Page3;
//显示初始页面
pDialog[0]->ShowWindow(SW_SHOW);
pDialog[1]->ShowWindow(SW_HIDE);
pDialog[2]->ShowWindow(SW_HIDE);
//保存当前选择
m_selTab = 0;
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CSourceSet::OnTcnSelchangeTabSource(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
pDialog[m_selTab]->UpdateData(TRUE);
pDialog[m_selTab]->ShowWindow(SW_HIDE);
m_selTab = m_tabSource.GetCurSel();
pDialog[m_selTab]->ShowWindow(SW_SHOW);
*pResult = 0;
}