FAQ:操纵下拉列表

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

张老师,您好!
     看了您的老文章??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:操纵下拉列表

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值