您的位置:首页 > 其它

查找指定类名的子窗口

2014-12-20 09:10 92 查看
向WebBrowser控件发送消息,示例

/*
Using PostMessage/SendMessage to send keys to c# IE WebBrowser http://www.acnenomor.com/946128p2/using-postmessagesendmessage-to-send-keys-to-c-ie-webbrowser */
BOOL Ccat8637_priceComparingSystemDlg::PreTranslateMessage(MSG* pMsg)
{
static int i=0;
if(pMsg->message == WM_KEYDOWN) {
switch(pMsg->wParam) {
case VK_RETURN:
{
if (i%2==0)//ignore even message, because the even message is just send.
{
CWnd *pWnd = &m_webBrowser;
// just get instance of webbrowsrer control
while (pWnd = pWnd->GetWindow(GW_CHILD))
// and find specific window between children
{
CString strClass;
GetClassName(pWnd->m_hWnd, strClass.GetBuffer(64), 64);
strClass.ReleaseBuffer();
if (strClass == _T("Internet Explorer_Server") )
{
::PostMessage(pWnd->GetSafeHwnd(), WM_KEYDOWN, VK_RETURN, 0);
::PostMessage(pWnd->GetSafeHwnd(), WM_CHAR, VK_RETURN, 0);
::SendMessage(pWnd->GetSafeHwnd(), WM_CHAR, VK_RETURN, 0);
::PostMessage(pWnd->GetSafeHwnd(), WM_KEYUP, VK_RETURN, 0L);
break;
}
}//end while
}//end if
i++;
}//end case

return TRUE;
case VK_ESCAPE://Disable Escape key
return TRUE;
}
}

return CDialogEx::PreTranslateMessage(pMsg);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: