用C#做智能设备的程序.因为设备的操作系统是PPC2002,所以只能采用Compact Framework1.0框架,这个版本的框架的ComboBox的DropDownStyle只提供了DropDownList,不提供DropDown,而我要实现可输入的DropDown.
做CF程序的应该都知道OpenNETCF这个优秀的开源项目,它里面的ComboBoxEx是继承自ComboBox的,里面也不过是实现了FindString这样的方法,但还是没有提供DrowDown样式.另个,这个开源框架里还有一个ControlEx的抽象基类,允许我们从这个类继承,用CreateWindowEx来创建Win32的控件.我现在的做法是从这个ControlEx继承了下来,创建的控件在程序运行起来后可见.但我用SendMessage(this.ChildHandle, (int)CB.ADDSTRING, 0, pString);这种方法增加项目,返回值是成功的,但是下拉列表里确是空的.我又用SendMessage(this.ChildHandle, (int)CB.GETLBTEXT, index, ptr);这种方法取得项目都是正确的,也就是说确确实实项目是添加进去了,但就是不显示出来.
我尝试在完整版的Framework下实现这个控件,完整版下的Control比在精简版下实现继承要方便得多.但是显示的界面还是不对,只有类似于Textbox的一个控件,连下拉按钮都没有,在精简版下至少还有个按钮.
为了这个问题我已经弄了三天了,头晕脑涨,我知道我把帖子发到首页是不对的,在这里我表示我的谦意,但是这方面的资料实在太少了,园里肯定有高手懂得WinSDK和C#的框架,希望能帮我搞定这个问题!
另外,把TextBox放在Combo上面的方式我已经实验过了,虽然能通过,但是我就是想知道如何继承Control后对标准控件就行包装!
我的联系方式:
ComboBox包装的测试源码下载