请教各位大神一个 MFC 非模态对话框的问题

净土丶 2014-08-25 05:16:17
最近再做一个mfc界面,在主界面中,也就是父窗口中,有这样一些参数设置按钮,但是占的空间太大。
我就想用“参数设置”这样一个按钮,替换原来的那一堆按钮,在父窗口中点击“参数设置”,

就弹出一个非模态对话框(子窗口),在非模态对话框中的就是之前的那一堆参数设置项。
就是这样:
具体应该怎么办呢。
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-09-26
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
hubo86915531 2014-08-26
  • 打赏
  • 举报
回复
把非模态对话框各个控件关联公共变量 然后在 if(m_pFather==NULL) { m_pFather = new CSonDialog(); m_pFather->Create(IDD_DIALOG1,this); } m_pFather->ShowWindow(SW_SHOW); 之后将父窗口的对应的变量一一赋值到非模态对话框 在非模态对话框调用ShowWindow(SW_HIDE)的时候 再反向赋值即可(记得在反向赋值前调用UpdateData())
dvlinker 2014-08-25
  • 打赏
  • 举报
回复
再就是你可以在弹出的非模态框的确定按钮中,将非模态框掩藏起来,不用销毁
dvlinker 2014-08-25
  • 打赏
  • 举报
回复

if(m_pFather==NULL)
{
m_pFather = new CSonDialog();
m_pFather->Create(IDD_DIALOG1,this);
m_pFather->ShowWindow(SW_SHOW);
}
else
{
m_pFather->ShowWindow(SW_SHOW);
}
净土丶 2014-08-25
  • 打赏
  • 举报
回复
就是在这个非模态对话框中输入参数,点击确定,然后在主界面(父窗口)中,能使用我在非模态对话框中输入的参数
快乐鹦鹉 2014-08-25
  • 打赏
  • 举报
回复
你当然需要把相关的代码都移到非模式对话框中才行
净土丶 2014-08-25
  • 打赏
  • 举报
回复
我是要将原来主界面相关的参数控件的程序,都换到非模态对话框的cpp文件下重新编辑吗
快乐鹦鹉 2014-08-25
  • 打赏
  • 举报
回复
你需要的反应是指什么?窗口能移动吗?文本框能输入内容吗?
净土丶 2014-08-25
  • 打赏
  • 举报
回复
引用 2 楼 happyparrot 的回复:
你创建非模态对话框的代码怎么写的呢? 传递参数?非模态对话框的对象是你对话框创建的,你完全有控制权啊,想怎么传都行啊
我就是按照网上的方法, void Cvideo_v1Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 m_pFather = new CSonDialog(); m_pFather->Create(IDD_DIALOG1,this); m_pFather->ShowWindow(SW_SHOW); } 就这样创建的。非模态对话框上的参数控件,都是我拖上去的。没有编辑代码。
快乐鹦鹉 2014-08-25
  • 打赏
  • 举报
回复
你创建非模态对话框的代码怎么写的呢? 传递参数?非模态对话框的对象是你对话框创建的,你完全有控制权啊,想怎么传都行啊
净土丶 2014-08-25
  • 打赏
  • 举报
回复
上面是我创建好的对话框,点击非模态对话框中的按钮是没有反应的。具体不知道该怎么弄,应该把之前主程序中相应部分的程序拷到非模态对话框这边来吗? 如何在他们之间传递参数呢? 有没有人能给出一个类似的例子看看呢。。

15,979

社区成员

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

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