您的位置:首页 > Web前端 > HTML

MFC下进行对HTML网页Select选择按钮的控制

2017-12-20 08:50 363 查看
void CHTMLContrlDlg::OnBnClickedButtonSelect()
{
if (spdoc.hWndChild == NULL)return;//spdoc.hWndChild为放置IE的窗口句柄,自己根据自己的窗口获取

CComPtr < IHTMLElementCollection > spElementCollection;
CComPtr < IHTMLDocument2 > spDoc;
LRESULT lRes;

UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
::SendMessageTimeout(spdoc.hWndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes));

HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc));
if (FAILED(hr)) return;

hr = spDoc->get_all(&spElementCollection);

if (FAILED(hr))
{
return;
}

long elementLength;

hr = spElementCollection->get_length(&elementLength);
if (FAILED(hr))
{
return;
}

VARIANT name;
CComBSTR tag;
name.vt = VT_I4;

for (int i = 0; i < elementLength; i++)
{
name.lVal = i;
IDispatch * pDispatch = NULL;
HRESULT res = spElementCollection->item(name, name, &pDispatch);

if (FAILED(res))
{
continue;
}

CComPtr<IHTMLSelectElement> pHtmlElement;
hr = pDispatch->QueryInterface(IID_IHTMLSelectElement, (void**)&pHtmlElement);
if (FAILED(hr))
{
continue;
}
BSTR name;
BSTR bValue;
long value;
long selectedIndex=2;
pHtmlElement->get_name(&name);
pHtmlElement->get_value(&bValue);
pHtmlElement->get_length(&value);
pHtmlElement->put_selectedIndex(selectedIndex);
i += value;
}

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