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

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;
	 }



}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值