foboy 发表于 2010-10-9 18:37:10

无意中的一个发现,关于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。不过再窗口设计器里选上这个属性时,产生的确是比较意外的效果:小三角没了。

cainwise 发表于 2010-10-9 21:08:45

有什么用途呢?

12250279 发表于 2010-10-10 11:23:52

{:face (411):}发现的不错,下次看看用用.

boyhong 发表于 2010-10-10 12:36:23

没有看懂有什么特别。。抱歉~~~

pusofalse 发表于 2010-10-10 13:45:14

本帖最后由 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中,又是另一种含义。

希望说明白了。

liufenglg 发表于 2010-10-10 15:10:58

学习了.原来是只读

afan 发表于 2010-10-10 15:11:50

这跟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版研究东西向来深入,佩服之极~!

boyhong 发表于 2010-10-10 16:56:24

pf得五体投地~~~学习了~~~~

liufenglg 发表于 2010-10-10 17:02:46

P版研究东西向来深入,佩服之极~!
afan 发表于 2010-10-10 15:11 http://www.autoitx.com/images/common/back.gif


    想深入,可无处下手{:face (229):}

1253322830 发表于 2010-10-10 17:50:35

高手呀   学习了

chenronting 发表于 2010-10-13 22:19:05

强大无比,,学习了

飘云 发表于 2010-10-13 23:33:21

就相当于用$CBS_DROPDOWNLIST嘛

menfan1 发表于 2010-10-14 09:49:13

呵呵,学习一下。。还有个问题:就是如何让ComboBox控件选择框的背景色同窗体背景色?

Eric 发表于 2010-10-14 12:20:18

这个属性还挺实用的

sky_huir 发表于 2010-10-15 15:48:10

不錯.很好.謝謝樓主分享!
页: [1] 2
查看完整版本: 无意中的一个发现,关于ComboBox控件的