用句柄操作下拉框

你要获得组合框的句柄做什么呢?
是要读取组合框条目的值还是进行什么操作呢?
要读取值用selectedIndex读取索引值(从0开始),用selectedItem读取选项的内容(要进行类型转换),用selectedIndex.key可以获得按键值;
要完成句柄的操作也有三种方式,用其一也可,但工程较大,用于Windows编程:
1、用父窗口的函数: WM_DRAWITEM函数重绘,再用句柄用函数GetWindow(hCombo,GW_CHILD)即可
2、可以通过API函数 GetComboBoxInfo 得到ComboBox 的信息,控件得重绘:
   protected override void OnHandleCreated(EventArgs e)

        {

            base.OnHandleCreated(e);

            ComboBoxInfo cbi = new ComboBoxInfo();

            cbi.cbSize = Marshal.SizeOf(cbi);

            GetComboBoxInfo(base.Handle, ref cbi);

            _editHandle = cbi.hwndEdit;

            if (DropDownStyle != ComboBoxStyle.DropDownList)

            {

                _editNativeWindow = new EditNativeWindow(this);

            }

        }
3、用.NET里封装好的函数:
SendMessage(comboBox1.Handle, CB_SETCURSEL, 1, 0);


/////////////////////////////////////

通过FindWindowEx(formhwnd,   0,   vbNullString,   "名字 ")我能够得到按钮的句柄,可下拉列表没有名字,我如何得到?
///////////////////////////////////////////////////////////////////

 

http://www.cnblogs.com/hssbsw/archive/2012/02/09/2344489.html

posted @ 2017-02-01 06:59  findumars  Views(2237)  Comments(0Edit  收藏  举报