FAQ:操纵下拉列表

原创 2004年10月15日 16:27:00

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

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

省市区三级联动菜单实现及三级联动下拉列表框默认值的设置

今天要来实现省市区三级下拉列表框,并且要实现联动效果。例如选择了四川省,那么后面的城市也要编程四川省下面的所有城市,如果选择了成都市,那么则区县下拉列表框就要变成成都市下的所有区县。   以...
  • JKINGCL
  • JKINGCL
  • 2013-07-01 18:03:20
  • 27288

怎样获取网页选择框的所选item的文本信息

通过IHTMLSelectElement、IHTMLOptionElement获取选择框的所选item的文本信息
  • LightBoat09
  • LightBoat09
  • 2010-08-18 15:16:00
  • 2833

什么是FAQ,它有何作用

FAQ就是Frequently Asked Questions(常见问题), 由于这些问题出现的比较普遍,一般都推荐用户先看看FAQ, 看自己的问题是否符合FAQ中的情况,如果符合的话FAQ中 ...
  • q1054261752
  • q1054261752
  • 2015-12-25 16:45:05
  • 476

FAQ = Fuck you?

剛才在看Denyhosts的FAQ的時候忽然想到FAQ的讀音跟fuck you似乎是一樣的?證明發下∵    F:[f]       A:[ʌ]       Q:[kju:]∴    FAQ=[fʌk...
  • hodrag
  • hodrag
  • 2009-04-22 08:24:00
  • 2270

考试系统——可输入并自动匹配的下拉框(三)——Html,Web控件级联

本篇博客主要解决JQUery Easy UI框架combobox和dropdownlist的级联传值问题。上篇博客说了easy ui的框架必须按照其自己的实现方案去实现,只要有一点和easy ui的...
  • liutengteng130
  • liutengteng130
  • 2013-12-09 12:11:47
  • 5612

easyUI的下拉框combobox与树tree联动

参与联动的有 2 个combobox 和 1 个tree: 联动流程:combobox1 控制 combobox2,combobox2 控制 tree1联动代码: //先写被控制者,再写控制...
  • leftfist
  • leftfist
  • 2015-01-15 09:45:05
  • 8605

Java FAQ(新手必看)

摘自 donkeyzheng 的 Blog    一、准备篇Q1.1什么是Java、Java2、JDK?JDK后面的1.3、1.4版本号又是怎么回事?答:Java是一种通用的,并发的,强类型的,面向对...
  • tiny_yan
  • tiny_yan
  • 2006-05-25 16:55:00
  • 927

FAQ管理全源代码源码整理

  • 2016年08月05日 15:19
  • 2.42MB
  • 下载

MFC利用webbrowser控件实现简单的自动登陆

用MFC 新建一个对话框工程,在界面上加入webbrowsr控件。 关键是要利用这个头文件 Mshtml.h 声明这几个函数: IHTMLElement* Get...
  • zhyi0000
  • zhyi0000
  • 2013-01-22 00:09:05
  • 2995

Delphi自动填写IE输入框

//自动填写主要过程; procedure TForm1.FillIEForm(aValidatecode: String; bPost: boolean); procedure DoWithHt...
  • u013408061
  • u013408061
  • 2017-04-27 22:13:53
  • 563
收藏助手
不良信息举报
您举报文章:FAQ:操纵下拉列表
举报原因:
原因补充:

(最多只允许输入30个字)