在同一位置,根据条件动态创建Edit控件或者ComBox控件

leer168 2010-10-15 01:33:49


位置用红点标出来了,是设计的时候重叠放置一个Eidt和一个ComBox呢,还是在那个位置在运行时New出来呢?
而且ComBox也会根据条件来自不同的类
目前ComBox子类有:
CCxArrowCombo : public CCxComboBox
CCxColorCombo : public CCxComboBox等

谁给意见啊,谢谢
...全文
211 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
MYNAMELIULI 2010-10-15
  • 打赏
  • 举报
回复
ShowWindow(SW_SHOW/SW_HDIE);显示隐藏不就可以了
leer168 2010-10-15
  • 打赏
  • 举报
回复
明天晚上结贴,等明天看看还有更好的主意么
leer168 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 tiger9991 的回复:]

引用 12 楼 leer168 的回复:
如果ComBox子类化很多,那岂不是要放置很多?我觉的不太好,心里没底。
//.h
CCxColorCombo m_ctlColorValueCombo;//颜色值
CCxLayerCombo m_ctlLayerValueCombo;//颜色值
.....

//.cpp
m_ctlColorValueCombo.Create();
……
[/Quote]

好,谢谢了啊
leer168 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 ship1912 的回复:]

对每个ComBox 控件添加 ON_UPDATE_COMMAND_UI 相应, 在响应函数里面判断选中的List Box值来决定是否显示控件。
[/Quote]
那还是先放置所以已知ComBox,然后根据条件确定哪个显示出来。
我想有没有办法,根据条件new出一个来,这样每个时刻只存在一个类型的ComBox
傻X 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 leer168 的回复:]
如果ComBox子类化很多,那岂不是要放置很多?我觉的不太好,心里没底。
//.h
CCxColorCombo m_ctlColorValueCombo;//颜色值
CCxLayerCombo m_ctlLayerValueCombo;//颜色值
.....

//.cpp
m_ctlColorValueCombo.Create();
m_ctlColorValueCombo.Mo……
[/Quote]

可以的,楼主,你去看下设计模式 适配器模式 就OK了
ship1912 2010-10-15
  • 打赏
  • 举报
回复
对每个ComBox 控件添加 ON_UPDATE_COMMAND_UI 相应, 在响应函数里面判断选中的List Box值来决定是否显示控件。
leer168 2010-10-15
  • 打赏
  • 举报
回复
线型ComBox
图层ComBox
里面的实现是不一样的
leer168 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ship1912 的回复:]

响应List Box的消息,重新给ComBox插入内容。
[/Quote]
不是ComBox内容的变化,线型ComBox子类会对线型处理,颜色ComBox子类会对颜色处理
leer168 2010-10-15
  • 打赏
  • 举报
回复
如果ComBox子类化很多,那岂不是要放置很多?我觉的不太好,心里没底。
//.h
CCxColorCombo m_ctlColorValueCombo;//颜色值
CCxLayerCombo m_ctlLayerValueCombo;//颜色值
.....

//.cpp
m_ctlColorValueCombo.Create();
m_ctlColorValueCombo.MoveWindow();

m_ctlLayerValueCombo.Create();
m_ctlLayerValueCombo.MoveWindow();

...


由此肯定会伴随着大量if..else; 或者 Swtich...Case

有别的思路么?
ship1912 2010-10-15
  • 打赏
  • 举报
回复
响应List Box的消息,重新给ComBox插入内容。
雪影 2010-10-15
  • 打赏
  • 举报
回复
在什么时候创建都可以,
子对话框资源中创建就可以了。

如上所述,使用ShowWindow和MoveWindow设置控件就可以了。
leer168 2010-10-15
  • 打赏
  • 举报
回复
图片终于发出来了,没发过带图片的。。。。

ShowWindow(SW_SHOW/SW_HDIE);显示隐藏不就可以了,可以在Edit和ComBox来切换了,那就这么弄吧。
接下里的问题呢,ComBox根据线型、图层、线宽动态改变。
m_tornado 2010-10-15
  • 打赏
  • 举报
回复
看不到图,你创建了之后通过MoveWindow ShowWindow控制不就可以了?
不显示就SW_HIDE,要移动到哪就MoveWindow
leer168 2010-10-15
  • 打赏
  • 举报
回复

Eleven 2010-10-15
  • 打赏
  • 举报
回复
ShowWindow(SW_SHOW/SW_HDIE);显示隐藏不就可以了
leer168 2010-10-15
  • 打赏
  • 举报
回复
<img src="attachment/201010/15/3657_1287121418LDf2.jpg">
leer168 2010-10-15
  • 打赏
  • 举报
回复
疯了啊
http://hi.csdn.net/space-3657-do-album-picid-655634-goto-down.html
leer168 2010-10-15
  • 打赏
  • 举报
回复

wangguang246 2010-10-15
  • 打赏
  • 举报
回复
你重新贴图,或者详细描述一遍
visualwind 2010-10-15
  • 打赏
  • 举报
回复
看不见图啊。
看这意思应该动态Create控件

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧