ActiveX 事件、窗口相关的有关问题
ActiveX 事件、窗口相关的问题
创建:
pCtrl->Create(_T(""), WS_VISIBLE | WS_TABSTOP | WS_CLIPSIBLINGS, CRect(0, 0, 50, 50), this, 10001);
在一个view上动态创建了多个控件,类型不一样
获得当前鼠标处的控件:
CRect rect;
CWnd* pWnd = GetTopWindow(); //顶层窗口
while (pWnd != NULL) //不为空
{
pWnd->GetWindowRect(&rect);
if (rect.PtInRect(cPoint))
{
break; //中断
}
else
{
pWnd = GetNextWindow(GW_HWNDNEXT); //下一层窗口
}
}
return pWnd;
这里为什么只能得到顶层次句柄,也就是说GetNextWindow(GW_HWNDNEXT);得不到????为什么
还有,当我点击一个控件时,为什么他不触发WM_SETFOCUS, 其它的不触发WM_KILLFOCUS??
请指教,谢谢大家
------解决方案--------------------
用GetWindow比较好,GetNextWindow是同级别的遍历吧?
创建:
pCtrl->Create(_T(""), WS_VISIBLE | WS_TABSTOP | WS_CLIPSIBLINGS, CRect(0, 0, 50, 50), this, 10001);
在一个view上动态创建了多个控件,类型不一样
获得当前鼠标处的控件:
CRect rect;
CWnd* pWnd = GetTopWindow(); //顶层窗口
while (pWnd != NULL) //不为空
{
pWnd->GetWindowRect(&rect);
if (rect.PtInRect(cPoint))
{
break; //中断
}
else
{
pWnd = GetNextWindow(GW_HWNDNEXT); //下一层窗口
}
}
return pWnd;
这里为什么只能得到顶层次句柄,也就是说GetNextWindow(GW_HWNDNEXT);得不到????为什么
还有,当我点击一个控件时,为什么他不触发WM_SETFOCUS, 其它的不触发WM_KILLFOCUS??
请指教,谢谢大家
------解决方案--------------------
用GetWindow比较好,GetNextWindow是同级别的遍历吧?