3个回答
展开全部
看了一下你和jellycgl的讨论,这里面有个问题需要注意。
“显示在Group Box上”,这个从我的理解,你是希望像控件那样子类化方式“嵌入”到对话框中?
如果是这样的“嵌入”,那么不能使用对话框。对话框本身对SubClassWindow方法的支持有问题。
其实,对话框的控件,默认都有一个SubClassDlgItem的方法,才能实现“嵌入”,而当希望一个窗口或者子定义窗口实现这样的方式(包括很多非控件派生的自定义控件),就需要通过Create创建后,先SetParent指定父子关系,然后通过SubClassWindow实现子类化才可以。
具体示例,你可以搜索SubClassWindow找到很多源代码,这里就不复制了。
“显示在Group Box上”,这个从我的理解,你是希望像控件那样子类化方式“嵌入”到对话框中?
如果是这样的“嵌入”,那么不能使用对话框。对话框本身对SubClassWindow方法的支持有问题。
其实,对话框的控件,默认都有一个SubClassDlgItem的方法,才能实现“嵌入”,而当希望一个窗口或者子定义窗口实现这样的方式(包括很多非控件派生的自定义控件),就需要通过Create创建后,先SetParent指定父子关系,然后通过SubClassWindow实现子类化才可以。
具体示例,你可以搜索SubClassWindow找到很多源代码,这里就不复制了。
展开全部
.重载控件的OnCreat函数
更多追问追答
追问
可以说的具体一点么?
比如对话框A上有一个按钮和一个Group Box,
然后我点击按钮调用另一个对话框B,(m_dlgB.Create(IDD_DLG_B, this);)
我要让对话框B显示在Group Box上.。
追答
在那个按钮响应函数中,动态创建B,位置根据A计算;
或者
在那个按钮响应函数中,调用Box的某个函数,你的A上一定有一个Box的对象吧,在里面自己写一个接口,这个接口里面动态创建B,这个样子位置计算可能简单点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么要显示在Group Box上,直接显示出来不就的了吗?
更多追问追答
追问
直接显示?难道是我控件选错了?
我最终的结果要的是:点击按钮A、B、C,然后在“显示”区里 ,切换我create生成的三个窗口。
图在下面有。
追答
针对你的要求,你可以创建3个对话框,这3个对话框开始都是隐臧的或只显示一个缺省的,显示的位置就是Group Box所在位置,假设你创建的3个对话框分别为A,B,C;可以这样,点击按钮A,显示对话框A,隐臧对话框B、C;点击按钮B,显示对话框B,隐臧对话框A、C;点击按钮C,显示对话框C,隐臧对话框A、B。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询