我在程序中调用例如CTabCtrl的SetCurSel(),当前标签页变了,但是对应的对话框没有显示出来,而手工点击标签可以看见对话框的变化   
类似于这样的 OnSelchangeTab事件该怎么写,在程序中又如何做触发OnSelchangeTab事件?

解决方案 »

  1.   

    int nsel = GetCurSel();
    SetCurSel(nsel);
      

  2.   

    NMHDR   nmhdr; 
    nmhdr.code = TCN_SELCHANGE;       
    nmhdr.hwndFrom =   m_pTab.GetSafeHwnd();       
    nmhdr.idFrom= m_pTab.GetDlgCtrlID();       
    ::SendMessage(m_pTab.GetSafeHwnd(),   WM_NOTIFY,MAKELONG(TCN_SELCHANGE,0),   (LPARAM)(&nmhdr));以上这段代码,放在 Button 事件里没有反应
      

  3.   

    SetCurSel这个函数本来就是只改变TAB控件的标签页的,那个子页面还是要自己调用ShowWindow函数才能显示的吧。
      

  4.   

    楼主,方便的话,把源程序发给我看看。
    [email protected]
      

  5.   

    你留个QQ给我吧,我QQ上传给你!
    我的QQ:317471417 注明:CSDN谢谢:)
      

  6.   

    是要发一个TCN_SELCHANGE通知消息,不过你这个SendMessage应该发给父窗口(对话框)吧?看你的TCN_SELCHANGE消息在哪里处理的。
    而且你这个消息参数也不对,wParam应该是控件ID,查一下MSDN。
      

  7.   

    好的,我的EMAIL是: [email protected]是: [email protected]
      

  8.   

    Mackz  ,能留个QQ或者MSN吗?请教你一下啊,我也估计问题是出在这里
      

  9.   

    to:datoucaicai  ,哈哈哈,要的就是这种效果。能留个QQ或者MSN吗?方便及时联系啊,给分啦