无意中的一个发现,关于ComboBox控件的
本帖最后由 foboy 于 2010-10-10 23:42 编辑GUICtrlCreateCombo("", 455, 75, 95, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $ES_CENTER))
感谢楼下版主的耐心分析。其实我想说的是其中的$ES_CENTER属性。他的值是1。版主说的是加上这个属性以后列表框就变成只读的了。其实我想说的是,加上这个属性之前,如果列表框很长,而里面的内容很短,当点空白区域的时候这个列表框就会变成输入框的样子让用户输入。如果要打开下拉列表必须得点那个小三角。这样有时候非常不方便。
而加上这个值以后,无论点列表框的什么地方,都会弹出下拉选项。整个长条都是一体的。
我也是开始向让他居中,才发现这个值的意义是如上所述。
这个值在COMBOBOX里的变量名确实是$CBS_SIMPLE。不过再窗口设计器里选上这个属性时,产生的确是比较意外的效果:小三角没了。 有什么用途呢? {:face (411):}发现的不错,下次看看用用. 没有看懂有什么特别。。抱歉~~~ 本帖最后由 pusofalse 于 2010-10-10 13:49 编辑
这跟GUICtrlCreateComBo("", 5, 5, 90, 20,BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_SIMPLE))一样。
当风格参数中包含1、2位码时(第1、2位为1),Combo拥有只读属性。
上例中,CBS_DROPDOWN的值为2、CBS_SIMPLE和ES_CENTER同是1。
给Combo加上ES_CENTER样式,在编写者看来,这是让Combo中的文本居中,但在系统看来,这是在声明CBS_SIMPLE样式,与CBS_DROPDOWN进行相或运算之后,Combo将拥有只读属性。
只看1、2、3这样的数字,并不能明白它在具体地方所表示的具体含义,只是一个单纯的数字,于是就有了常量的定义,放在Combo中,3(BitOR($CBS_DROPDOWN, $CBS_SIMPLE))表示让Combo只读,放在Input中(BitOR($ES_CENTER, $ES_RIGHT)),不具任何意义(互斥),放在ListView中,又是另一种含义。
希望说明白了。 学习了.原来是只读 这跟GUICtrlCreateComBo("", 5, 5, 90, 20,BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_SIMPLE))一样。 ...
pusofalse 发表于 2010-10-10 13:45 http://www.autoitx.com/images/common/back.gif
P版研究东西向来深入,佩服之极~! pf得五体投地~~~学习了~~~~ P版研究东西向来深入,佩服之极~!
afan 发表于 2010-10-10 15:11 http://www.autoitx.com/images/common/back.gif
想深入,可无处下手{:face (229):} 高手呀 学习了 强大无比,,学习了 就相当于用$CBS_DROPDOWNLIST嘛 呵呵,学习一下。。还有个问题:就是如何让ComboBox控件选择框的背景色同窗体背景色? 这个属性还挺实用的 不錯.很好.謝謝樓主分享!
页:
[1]
2