如何将我的程序插入 MFC 对话框?

Posted

技术标签:

【中文标题】如何将我的程序插入 MFC 对话框?【英文标题】:How to insert my program to MFC dialog? 【发布时间】:2013-08-19 10:28:11 【问题描述】:

我是 MFC 编程的新手。我已经写了一个程序,我想在图形界面中显示程序。所以我用MFC的对话框来实现,但是运行的时候就不行了。

点击OK 按钮后:

void CTest1Dlg::OnBnClickedOk()

  UpdateData();
  FILE *stream; 
  freopen_s( &stream, "out_file.ps", "w", stdout ); // reopen stream as .ps
  if (mode == 1)                                    //main() in my code 
  
    ActiveAuthoring();
  
  else if (mode == 0)
  
    XYAuthoring();
  
  else 
  
    ActiveAuthoring();
  
  cout<<"showpage"<<endl;
  UpdateData(FALSE);
  OnOK();

我的代码在converter.cpp 中,所以首先我将converter.cpp 更改为converter.h 并将其包含在Test1Dlg.cpp 中。然后当点击OK 按钮时,在我的代码中运行main()

但是,我发现参数似乎没有从图形界面传输到我的代码,尽管我将编辑控制框与每个参数相关联。所以对话框不起作用。有人可以帮我吗?

编辑

八个编辑控件框是我在coverter.cpp中使用的参数。

我的代码旨在使用八个参数来生成一些字符串,这些字符串保存在一个名为out_file的文件中,格式为.ps

【问题讨论】:

什么是“stdout”?你的意思是写到控制台吗?我认为 MFC 不能直接写入控制台。必须调用像 AttachConsole 这样的东西。 @doctorlove 我已经更新了我的问题。如图所示,我的代码中有八个参数。 @rajraj 不完全是。我的代码根据八个参数生成了一些字符串,并将它们保存在 out_file.ps 中。 向我们展示更多代码并告诉我们究竟是什么不起作用。 cout 应该去哪里? 不明白你想要什么?? 【参考方案1】:

有两种基本方法可以将数据从对话框控件获取到“您的代码”...如果您使用 Visual Studio 对话框编辑器并在其中添加控件,它将在 virtual void DoDataExchange(CDataExchange* pDX) 内生成代码供您使用当对话框初始化并终止时,将数据移入和移出控件。您将有一条类似DDX_Text(pDX, IDC_DIGITS, m_Digits); 的行,IDE 添加了它来进行交换。如果需要,您也可以直接设置和获取数据,例如GetDlgItem( IDC_DIGITS )-&gt;GetWindowText( m_Digits );

【讨论】:

以上是关于如何将我的程序插入 MFC 对话框?的主要内容,如果未能解决你的问题,请参考以下文章

MFC:子对话框行为

当基于 CDialog 的应用程序启动时,如何将我的辅助对话框窗口置于顶部?

在创建mfc项目期间我的对话节点丢失了

如何在 Visual Studio 中禁用基于对话框的 MFC 应用程序的自动关闭?

如何在windows API应用程序中获取一个MFC对话框的句柄 诸大神请帮忙

MFC 应用程序:如何向单个文档应用程序添加一组控件?