热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用多GroupBox,里面大大小小包括了40多个控件,我想能一次只显示一个GroupBox。

我的需求自我感觉相当简单[如果能把程序所有控件位置不动,把主窗口下移]就实现了。但setwindowspos没这功能。我就得隐藏控件了,我一开始把控件设为GroupBox的子控件,设置完
我的需求自我感觉相当简单[如果能把程序所有控件位置不动,把主窗口下移]就实现了。
但setwindowspos没这功能。

我就得隐藏控件了,我一开始把控件设为Group Box的子控件,设置完以后updateata(false)就出错了。 我也不想一个一个控件的隐藏移动,那会累死人的。难道VC就真的这么软蛋,连个小界面也弄不好吗。 大家给点代码,例子,或思路都有分。


13 个解决方案

#1


GROUPBOX是一个容器,其中可以放置其它控件,当设置这个GROUPBOX的ENABLED=FALSE时,其中的控件一起隐藏;

如何能实现上面所说的在BCB中可以实现的功能呢?

#2


关注

#3


做一个父窗口,把要控制的控件作为子窗口,然后Enable/Disable父窗口。

#4


CButton-derived control associated with a groupbox to enable/disable controls inside

http://www.codeproject.com/buttonctrl/groupcheck123.asp

#5


是的,我是把GROUPBOX做为父窗口,但是出现了问题。
问题如下:
         1.所有控件显示不正常,只有Group1---Group5中的控件,只有Group1中的能正常显示,我是确认我每个父窗口都设的不错,Group2-5只显示GroupBox一个控件,他的孩子都不显示

void CMyDlg::SetGroupBoxParent()
{

pFrameGroup1=(CWnd*)GetDlgItem(IDC_FRAME1);
(CWnd*)GetDlgItem(IDC_STATIC1_1)->SetParent(pFrameGroup1);
(CWnd*)GetDlgItem(IDC_STATIC1_2)->SetParent(pFrameGroup1);
(CWnd*)GetDlgItem(IDC_STATIC1_3)->SetParent(pFrameGroup1);
(CWnd*)GetDlgItem(IDC_LOGIN_USERNAME)->SetParent(pFrameGroup1);
(CWnd*)GetDlgItem(IDC_LOGIN_PASSWORD)->SetParent(pFrameGroup1);
(CWnd*)GetDlgItem(IDC_SERVER_IP)->SetParent(pFrameGroup1);
(CWnd*)GetDlgItem(IDOK)->SetParent(pFrameGroup1);
(CWnd*)GetDlgItem(IDCANCEL)->SetParent(pFrameGroup1);

pFrameGroup2=(CWnd*)GetDlgItem(IDC_FRAME2);
(CWnd*)GetDlgItem(IDC_LISTBOX_TASKLIST)->SetParent(pFrameGroup2);
(CWnd*)GetDlgItem(IDC_TASKLIST_DEL)->SetParent(pFrameGroup2);


pFrameGroup3=(CWnd*)GetDlgItem(IDC_FRAME3);
(CWnd*)GetDlgItem(IDC_STATIC3_1)->SetParent(pFrameGroup3);
(CWnd*)GetDlgItem(IDC_STATIC3_2)->SetParent(pFrameGroup3);
(CWnd*)GetDlgItem(IDC_STATIC3_3)->SetParent(pFrameGroup3);
(CWnd*)GetDlgItem(IDC_LISTBOX_ADDTASK)->SetParent(pFrameGroup3);
(CWnd*)GetDlgItem(IDC_EDIT_ADDTASK_STARTDATE)->SetParent(pFrameGroup3);
(CWnd*)GetDlgItem(IDC_BUT_ADDTASK)->SetParent(pFrameGroup3);
(CWnd*)GetDlgItem(IDC_EDIT_ADDTASK_ENDDATE)->SetParent(pFrameGroup3);


pFrameGroup4=(CWnd*)GetDlgItem(IDC_FRAME4);
(CWnd*)GetDlgItem(IDC_STATIC4_1)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_STATIC4_2)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_STATIC4_3)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_STATIC4_4)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_STATIC4_5)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_STATIC4_6)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_STATIC4_7)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_LISTBOX_GWLIST)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_EDIT_GW_SPNUMBER)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_EDIT_GW_SEND)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_EDIT_GW_RECV)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_EDIT_GW_OTHERSPNUMBER)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_EDIT_GW_OTHERSEND)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_EDIT_GW_OTHERSPRECV)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_BUT_GW_ADD)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_BUT_GW_UPDATE)->SetParent(pFrameGroup4);
(CWnd*)GetDlgItem(IDC_BUT_GW_DEL)->SetParent(pFrameGroup4);

pFrameGroup5=(CWnd*)GetDlgItem(IDC_FRAME5);
(CWnd*)GetDlgItem(IDC_EDIT_SETTING_SPACE)->SetParent(pFrameGroup5);
(CWnd*)GetDlgItem(IDC_EDIT_SETTING_OUTTIME)->SetParent(pFrameGroup5);
(CWnd*)GetDlgItem(IDC_EDIT_SETTING_EXCEPTION)->SetParent(pFrameGroup5);
(CWnd*)GetDlgItem(IDC_SETTING_UPDATE)->SetParent(pFrameGroup5);
(CWnd*)GetDlgItem(IDC_STATIC5_1)->SetParent(pFrameGroup5);
(CWnd*)GetDlgItem(IDC_STATIC5_2)->SetParent(pFrameGroup5);
(CWnd*)GetDlgItem(IDC_STATIC5_3)->SetParent(pFrameGroup5);

pFrameGroup6=(CWnd*)GetDlgItem(IDC_FRAME6);
(CWnd*)GetDlgItem(IDC_LISTBOX_RECVMOBILE)->SetParent(pFrameGroup6);
(CWnd*)GetDlgItem(IDC_ADD_RECVTEL)->SetParent(pFrameGroup6);
(CWnd*)GetDlgItem(IDC_DEL_RECVTEL)->SetParent(pFrameGroup6);
(CWnd*)GetDlgItem(IDC_ADD_UPDATETEL)->SetParent(pFrameGroup6);

//设置分组
}


#6


我采用vcfans的类试一下。

#7


帮楼主顶!

#8


搞定了,
写了一个移动函数,把ID设为连续的,
传ID开始,ID结束,然后循环移动。
VCFans的类我不太会用,我对checkbox邦定变量时没有groupboxcheck这一项,但我看那个demo上有,我也不知道如何把类型绑定自已的类上。所以没有用,唉。

#9


1. 可以用对话框中嵌入对话框来做,以后其他地方也可以很方便使用:
http://218.108.41.12/vchome/book/download/SuperWorld.rar

2. 还可以用属性页来做:
http://www.vckbase.com/document/viewdoc/?id=398

#10


一个For循环做!前提是你的Group的控件的ID是相连的
直接:
int Group1First;// = IDC_BITTON_1;Group1中的第一个控件 
int Group1Last;// = IDC_BITTON_N; Group1中的最后一个控件
//你可以直接修改resource.h中的控件ID值,使这些ID相连
for(Group1First = IDC_BITTON_1;Group1First <= Group1Last;Group1Fisrt++)
GetDlgItem(Group1First)->ShowWindow(SW_HIDE);

#11


用属性页

#12


后来的分就少了呵呵.
用属性页好像是个不错的主意.下回试试.

#13


http://www.codeproject.com/buttonctrl/groupcontrol.asp

看看这个吧,这才知真正的解决之道。我找了一整天,国内的网站上实在是找不到像样的答案。

推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 标题: ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
author-avatar
EGO-Underwear
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有