CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

CComboBox的问题

楼主illocal(风声边界)2005-08-02 14:35:15 在 VC/MFC / 基础类 提问

一个CComboBox控件  
   
  想在特定的情况下,把下拉的那个小箭头禁止掉,不让控件选其他的内容  
  在另一个特定的情况下再恢复  
   
  请大家指教 问题点数:30、回复次数:23Top

1 楼laifeng415()回复于 2005-08-02 14:42:23 得分 1

直接用EnableWindows(FALSE)就可以了。前面首先选中combox控件.Top

2 楼happyparrot(快乐鹦鹉)回复于 2005-08-02 14:43:06 得分 1

不让控件选其他的内容  
  在另一个特定的情况下再恢复  
  --这还不好办么,直接调用该控件的EnableWindow函数就可以了阿Top

3 楼lixiaosan(小三)回复于 2005-08-02 14:44:18 得分 1

不用的时候把控件disable掉,用的时候enable  
  GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);  
  GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);Top

4 楼illocal(风声边界)回复于 2005-08-02 14:45:04 得分 0

EnableWindow不好,EnableWindow后控件里的字就是灰的了  
  我希望禁止以后,控件里的字是只读(但是底色是灰的)Top

5 楼hjon(爬爬虫)回复于 2005-08-02 14:45:14 得分 0

如果不让选的话要以禁用CComboBox  
  this->GetDlgItem(IDComboBox)->EnableWindow(FALSE);  
  条件满足时再让其可用,this->GetDlgItem(IDComboBox)->EnableWindow();  
  Top

6 楼nkwesley(江南丝竹)回复于 2005-08-02 14:50:49 得分 3

自画一个Top

7 楼exploeryang(手心手背都没肉)回复于 2005-08-02 14:51:58 得分 1

以上几位大虾言之有理,只需设置不同的参数即可!Top

8 楼Black_Man(Debug)回复于 2005-08-02 16:20:17 得分 5

自画倒没有必要,只需要在选择的事件处理中加入条件判断就可以了啊  
   
  也就是说,在一定条件下,即使你选择别的item,我也强制你选择特定的item(  
   
  使用SetCurSel(n)函数吧  
   
  )  
   
  这个够绝吧?  
   
  呵呵!◎#!◎  
   
  Top

9 楼lixiaosan(小三)回复于 2005-08-02 16:40:49 得分 3

要不你就把列表中其他选项删掉,只留一项  
  需要的时候再添加回来Top

10 楼illocal(风声边界)回复于 2005-08-03 16:07:24 得分 0

这个方法不是很好Top

11 楼illocal(风声边界)回复于 2005-08-20 10:44:42 得分 0

upTop

12 楼zdtools(土豆在线)回复于 2005-08-21 00:10:03 得分 1

清掉列表里的字串  
  用的时候在ADDTop

13 楼illocal(风声边界)回复于 2005-08-22 09:26:49 得分 0

还有别的办法吗?Top

14 楼illocal(风声边界)回复于 2005-08-23 14:36:24 得分 0

upTop

15 楼swimmingfish2004(something)回复于 2005-09-03 15:48:22 得分 3

在上面叠两个CCOmboX,一个里面有正常的数据,另外一个只有一个数据,当不要下拉时隐藏正常的那个,显示只有一个的那个CComboBox。Top

16 楼illocal(风声边界)回复于 2005-09-13 10:04:32 得分 0

楼上的办法还行,就是有点麻烦,是吧Top

17 楼illocal(风声边界)回复于 2005-09-26 09:28:30 得分 0

upTop

18 楼youngdreamer2008(羊追馍)回复于 2005-09-26 09:48:56 得分 3

可以在此条件下:  
  先把当前的select保存,再在SelChange()中将select   item   设为保存的那个,这样就改不了了  
  在另外的条件下:  
  取消上面的操作,使之正常就好了!  
  *******只是一个思路*********Top

19 楼bird1982(看星星的鸟)回复于 2005-09-26 10:36:15 得分 3

设计的信号量,你允许改的时候信号量为0,不允许改的时候信号量设置为1,得0的时候选什么是什么,得1的时候全弹不允许更改内容的MessageBox,发生ITEM选择事件时,先判断信号量,分别进两个操作不就完了么?  
  何必那么麻烦。Top

20 楼heheukyo0()回复于 2005-09-26 10:49:37 得分 3

上面的不是体贴的设计哦,MessageBox总在提醒用户出错了,不友好,不便多用。  
  可以在同一位置放一个隐藏的只读的TextBox,条件满足时隐藏ComboBox,显示TextBox。  
  其他时候再隐藏TextBox,显示Combobox就行了,跟上面说的用两个ComboBox的思路一样,但ComboBox毕竟有个下拉按钮,下拉按钮放在那里却不让人选,感觉总是不好。  
  用TextBox的话,就明白的告诉用户,此处只有唯一选择。Top

21 楼tianblank520(哈哈)回复于 2005-09-26 11:18:44 得分 0

呵呵,太简单了  
  GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);  
  GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);Top

22 楼coldcrane(清风明月)回复于 2005-09-26 14:53:43 得分 2

从你的需求来看,最简单的办法就是自己实现CtlColor,  
  在CComboBox被禁止后,你指定它的颜色就OK了Top

23 楼illocal(风声边界)回复于 2005-10-19 12:34:23 得分 0

大家提点意见呢Top

相关问题

  • 怎么用CComboBox?
  • 关于CComboBox::AddString()
  • CCOMBOBOX的问题......
  • CComboBox问题
  • 关于CComboBox
  • CComboBox小问题
  • 关于CComboBox
  • CComboBox的小问题。
  • CComboBox什么问题?
  • how to dynamicly disable a control(such as ccombobox or edit box)

关键词

  • 控件
  • 信号
  • idc
  • 内容
  • 选择
  • enablewindow
  • ccombobox
  • getdlgitem
  • 特定的情况
  • 隐藏

得分解答快速导航

  • 帖主:illocal
  • laifeng415
  • happyparrot
  • lixiaosan
  • nkwesley
  • exploeryang
  • Black_Man
  • lixiaosan
  • zdtools
  • swimmingfish2004
  • youngdreamer2008
  • bird1982
  • heheukyo0
  • coldcrane

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo