我写了个程序用来计算一种数,学校要求在mfc的那个菜单界面能打开我写的这个程序运行界面,不知道提问方式对不对,提示就给到这
自己写好的程序:https://download.csdn.net/download/qq_40305944/12192872
首先,需要创建一个MFC应用程序并打开资源视图。在菜单资源下添加一个新的菜单选项,例如“打开计算程序”。然后,在菜单命令响应函数中添加代码以打开控制台应用程序的界面。
为了实现这个目标,需要进行以下步骤:
在资源视图中,右击菜单资源,并选择添加新菜单命令。将命令ID设置为ID_OPEN_CALC,并将提示文本设置为“打开计算程序”。
打开主框架窗口的头文件(通常是FrameWnd.h),并添加一个成员函数,名称为OnOpenCalc(),以响应在菜单中选择“打开计算程序”的操作。
例如,可以在MainFrame.h文件中添加以下代码:
afx_msg void OnOpenCalc();
例如,可以在MainFrame.cpp文件中添加以下代码:
void CMainFrame::OnOpenCalc()
{
// 使用ShellExecute函数调用控制台应用程序
ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWDEFAULT);
}
现在,当用户在菜单中选择“打开计算程序”,MFC应用程序将调用控制台应用程序的界面。完整的示例代码如下:
MainFrame.h文件:
class CMainFrame : public CFrameWnd
{
DECLARE_DYNAMIC(CMainFrame)
public:
CMainFrame();
virtual ~CMainFrame();
// 声明菜单命令响应函数
afx_msg void OnOpenCalc();
protected:
DECLARE_MESSAGE_MAP()
};
MainFrame.cpp文件:
#include "stdafx.h"
#include "MFCApplication.h"
#include "MainFrame.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_COMMAND(ID_OPEN_CALC, &CMainFrame::OnOpenCalc)
END_MESSAGE_MAP()
CMainFrame::CMainFrame()
{
// ...
}
CMainFrame::~CMainFrame()
{
// ...
}
void CMainFrame::OnOpenCalc()
{
// 调用控制台应用程序
ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWDEFAULT);
}
在资源视图中,可以看到已经添加了“打开计算程序”菜单选项。选择该选项,应用程序将调用控制台应用程序的界面。
最终效果:
改一下项目属性,可以实现既有控制台,又有MFC界面的,也可以用一个按钮调用控制台
你是要将控制台插入MFC的界面中还是说通过点击菜单按钮打开你写的程序。如果是后者,只需要调用system()或者shellexecute(),参数是你的程序的路径。