FAQ:操纵下拉列表

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

问========================================

张老师,您好!

看了您的老文章??TWebBrowser编程简述,觉得非常有帮助。

我现在碰到了一个难题, 请问怎么样编程控制一个联动的下拉列表呢?例如省、县联动的select,从外边用程序控制自动输入某些值,

期待您的帮助,

2004-10-14

答========================================

1、设置IHTMLSelectElement接口的selectedIndex属性可以改变选中的列表项。

2、动态添加列表项。

先调用IHTMLDocument2::createElement创建一个option对象,

HRESULT createElement(

BSTR eTag, //标签名,可以是img, area, option(ie4), frame, iframe(ie5)

IHTMLElement **newElem //返回对象指针

);

再调用IHTMLSelectElement::add将创建的option对象添加到列表中

HRESULT add(

IHTMLElement *element,

VARIANT before //添加到哪个位置,VT_I4类型的VARIANT

);

更详细的内容参阅MSDN。

3、要操纵列表中每个项,先从IHTMLSelectElement的item属性得到列表项的集合,再通过IHTMLOptionElement接口来操纵。下面的例子演示了如何将下拉列表每一项的文字添加到一个BSTR数组pszOptText中。

HRESULT GetOptions(IHTMLSelectElement *ppvSelect, BSTR *pszOptText, long *plItems)

{

IDispatch *ppvdispOption;

IHTMLOptionElement *ppvOption;

HRESULT hResult;

// 取得select对象中optoin对象的数目

ppvSelect->get_length(plItems);

for (long i=0;i<*plItems;i++){

// 获取IDispatch指针

_variant_t index = i;

hResult = ppvSelect->item( index, index, &ppvdispOption );

if FAILED(hResult) return(hResult);

// 得到IHTMLOptionElement接口.

hResult = ppvdispOption->QueryInterface( IID_IHTMLOptionElement,

(void **) &ppvOption);

ppvdispOption->Release();

if FAILED(hResult) return(hResult);

// 把文字添加到BSTR数组.

hResult = ppvOption->get_text(&(pszOptText[i]));

ppvOption->Release();

if FAILED(hResult) return(hResult);

}

return S_OK;

}

引用地址:FAQ:操纵下拉列表

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航