我给对话框添加了一个CTABCTRL
然后加入了两个item然后
m_my.Create (IDD_PROPPAGE_MY,&m_TabCtrl);//创建第一个属性页
m_other.Create (IDD_PROPPAGE_OTHER,&m_TabCtrl);//创建第二个属性页 m_my.SetWindowPos (NULL,1,20,343,328,SWP_SHOWWINDOW);
m_other.SetWindowPos (NULL,1,20,343,328,SWP_HIDEWINDOW);后来我往第一个属性页IDD_PROPPAGE_MY
上添加了一个BUTTON运行程序
可以看见BUTTON
但是用鼠标点 那个BUTTON 没有反应后来
又往这个属性页上添加了一些其他控件
其他控件也是没反应 我又给 控件 鼠标右键点击的事件函数 里面插入了MessageBox
鼠标点那些空间 没有弹出MessageBox
原因好像是属性页 和属性页上的控件收不到 用户的消息有什么方法可以让添加的属性页上的控件收到消息吗?
然后加入了两个item然后
m_my.Create (IDD_PROPPAGE_MY,&m_TabCtrl);//创建第一个属性页
m_other.Create (IDD_PROPPAGE_OTHER,&m_TabCtrl);//创建第二个属性页 m_my.SetWindowPos (NULL,1,20,343,328,SWP_SHOWWINDOW);
m_other.SetWindowPos (NULL,1,20,343,328,SWP_HIDEWINDOW);后来我往第一个属性页IDD_PROPPAGE_MY
上添加了一个BUTTON运行程序
可以看见BUTTON
但是用鼠标点 那个BUTTON 没有反应后来
又往这个属性页上添加了一些其他控件
其他控件也是没反应 我又给 控件 鼠标右键点击的事件函数 里面插入了MessageBox
鼠标点那些空间 没有弹出MessageBox
原因好像是属性页 和属性页上的控件收不到 用户的消息有什么方法可以让添加的属性页上的控件收到消息吗?
//初始化代码
if(!page1.m_hWnd || !page2.m_hWnd || !page3.m_hWnd) //第一次初始化m_tab 控件和page页的建立
{
//初始化m_tab控件
m_tab.InsertItem(1,"设置");
m_tab.InsertItem(2,"指令");
m_tab.InsertItem(3,"位置"); //建立属性页各页
page1.Create(IDD_SETPARAM,GetDlgItem(IDC_SYS_TAB));
page2.Create(IDD_INSTRUCT,GetDlgItem(IDC_SYS_TAB));
page3.Create(IDD_POSDEBUG,GetDlgItem(IDC_SYS_TAB)); //设置页面的位置在m_tab控件范围内
CRect rs;
m_tab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4; page1.MoveWindow(rs);
page2.MoveWindow(rs);
page3.MoveWindow(rs); page1.ShowWindow(TRUE);
m_tab.SetCurSel(0); //默认显示第一个
}
//下面的是给tab添加TCN_SELCHANGE消息响应的
void CSystem::OnTcnSelchangeSysTab(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
page3.ShowWindow(FALSE);
break;
case 1:
page1.ShowWindow(FALSE);
page2.ShowWindow(TRUE);
page3.ShowWindow(FALSE);
break;
case 2:
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
page3.ShowWindow(TRUE);
default:
break;
}
*pResult = 0;
}