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