我想向一个窗口的TAB控件里面的子控件(一个按钮)发送单击消息.
可是我发现这个窗口在刚运行的时候只有第一个选项卡的控件是初始化了的,其他选项卡的里的子控件都无法获得句柄.只有切换选项卡之后 对应的选项卡的子控件才会初始化并能捕捉到句柄..
所以我想发送sendmessage消息 切换选项卡 然后查找那个按钮
或者大家有什么好的方法也可以教教我  求大虾调教~!

解决方案 »

  1.   

    大虾求指点啊,还有 我试过网上很多方法都不行,向tab控件的选项按钮发送单击事件,项tab发送CTRL+TAB组合键项主窗口发送组合键 都不行
      

  2.   

    发送TCM_SETCURFOCUS 消息试下。
      

  3.   

    谢谢zwfgdlc  我刚才试过了 发送TCM_SETCURFOCUS 消息窗口并没有更新 ,但是选项卡已经切换过去了 
    也就是说选项卡是切换了 里面的子控件还是没变.所以那个控件还是没有初始化找不到.
    我查了下 要发送TCN_SELCHANGE消息.可是我试了发送了没反应....BOOL   CALLBACK   EnumChildProc(HWND hWnd,LPARAM   lParam)
    {
    CStringArray* Strs=(CStringArray*)lParam;
    CString ChildName ;
    GetClassName(hWnd,ChildName.GetBuffer(512),1024);
    //寻找控件句柄发送信息
    if (ChildName.CollateNoCase("TPageControl")==0)
    {
    NMHDR nmhdr;
    nmhdr.code=TCN_SELCHANGE;
    nmhdr.hwndFrom=hWnd;
    nmhdr.idFrom=GetDlgCtrlID(hWnd);
     :: PostMessage (hWnd,WM_NOTIFY,MAKELONG(TCN_SELCHANGE,2),(LPARAM)&nmhdr );
    //弹出框参数不为空则查找弹出框
    GetClassName(hWnd,ChildName.GetBuffer(1024),1024);
    if(ChildName.CollateNoCase("msctls_updown32")==0)
    {
    }
    //找到窗口 停止枚举
    //return false;
    }
    //否则继续
    return true;
    }
      

  4.   

    TAB控件里面的子控件(一个按钮)发送单击消息.