我给对话框添加了一个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 
原因好像是属性页 和属性页上的控件收不到 用户的消息有什么方法可以让添加的属性页上的控件收到消息吗?

解决方案 »

  1.   

    你创建的代码有问题,给你个例子看看:
    //初始化代码
    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;
    }
      

  2.   

    给你看个例子http://www.codeguru.com/cpp/controls/controls/tabcontrols/article.php/c5239/里面有详细的使用方法和源代码,希望对你有用。