简单的说是我已经有了一个EditBox,想通过代码把它“变成”DropDown ComboBox找了点资料,关与dropdown comboBox和droplist comboBox间是否能代码转化,有人提出说本质上dropdown是2个dlg,1个droplist和1个edit,我现在需要的已经有个了个edit能否变成dropdown comboBox;起因是由于,在原有的一个通用对话框类上,对对话框上个别的editbox需要时改成comboBox,有人知道怎么实现比较好么,是否能通过代码将Edit真正变成combobox;
我现在简单的想法是,新创建一个combobox,将原来的editbox“覆盖”
我现在简单的想法是,新创建一个combobox,将原来的editbox“覆盖”
在将其重载与Edit内容变更相关联,不过有一个细节 就是按钮的位置问题 如果在edit中创建 那么文字如果超出会显示在按钮的下方.所以我建议用Cstatic多加一层窗口做为Edit和Button的父窗口 Button在Edit右侧边缘即可.
当需要用到Combobox的下拉按钮时,再把它显示出来。
并设置showwindow(SW_HIDE),但在使用时,发现可以看到新生成的 combobox ,但无法编辑,下拉钮也点不了,鼠标上去完全像是下面没控件,仔细观察了原editbox位置,发现在一个frame或者不可编辑的 editbox上(附近有一圈边界线),将新生成combobox移到边界线外发现可以正常使用,感觉是叠加问题,但是combobox是可见的,如果是完全被盖住,应该是不可见,现在困惑了,由于通用类是 封装的,不知道原来是怎么实现editbox
大家有什么 解决法么
关键是combobox可见但不可编辑,被什么挡住了?
或者把Editbox的visible设为false?
用SetWindowPos置顶,但发现还要设置成transparent但发现个新问题,怎么保证原edit和combo的数据同步,在每个修改edit内容的地方做修改?
这样如果使用edit的地方少,还觉得简单可行,但如果过多,并且原来的通用类完全封装了怎么办?
想到派生通用类的DoDataExchange(),有办法么
我现在使用的功能上基本做到了,因为原来的通用对话框类,刚好有类似的虚函数,但还是想知道有什么其他方法