如何将我的程序插入 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 )->GetWindowText( m_Digits );
【讨论】:
以上是关于如何将我的程序插入 MFC 对话框?的主要内容,如果未能解决你的问题,请参考以下文章
当基于 CDialog 的应用程序启动时,如何将我的辅助对话框窗口置于顶部?
如何在 Visual Studio 中禁用基于对话框的 MFC 应用程序的自动关闭?