啥也学不会嗷嗷 2023-05-23 08:51 采纳率: 80%
浏览 20
已结题

mfc怎么把外部模块,控制台写的程序,接入主界面

我写了个程序用来计算一种数,学校要求在mfc的那个菜单界面能打开我写的这个程序运行界面,不知道提问方式对不对,提示就给到这

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-23 10:05
    关注
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/237237
    • 这篇博客你也可以参考下:mfc菜单项修改更新后,mfc运行后菜单快捷键不显示
    • 除此之外, 这篇博客: MFC写串口升级版,可在界面上设置波特率,校验位,自动读取COM口之内的中的 写好的程序连接 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 自己写好的程序:https://download.csdn.net/download/qq_40305944/12192872

    • 您还可以看一下 胡兵老师的MFC开发简单聊天程序课程中的 解决接收字符串不完整小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      首先,需要创建一个MFC应用程序并打开资源视图。在菜单资源下添加一个新的菜单选项,例如“打开计算程序”。然后,在菜单命令响应函数中添加代码以打开控制台应用程序的界面。

      为了实现这个目标,需要进行以下步骤:

      1. 在资源视图中,右击菜单资源,并选择添加新菜单命令。将命令ID设置为ID_OPEN_CALC,并将提示文本设置为“打开计算程序”。

      2. 打开主框架窗口的头文件(通常是FrameWnd.h),并添加一个成员函数,名称为OnOpenCalc(),以响应在菜单中选择“打开计算程序”的操作。

      例如,可以在MainFrame.h文件中添加以下代码:

      afx_msg void OnOpenCalc();
      
      1. 在主框架窗口的实现文件(通常是FrameWnd.cpp)中添加控制台应用程序的调用代码到菜单响应函数中。这个过程中可能需要使用ShellExecute函数。

      例如,可以在MainFrame.cpp文件中添加以下代码:

      void CMainFrame::OnOpenCalc()
      {
          // 使用ShellExecute函数调用控制台应用程序
          ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWDEFAULT);
      }
      
      1. 最后,在资源视图中双击菜单ID_OPEN_CALC,并将命令响应函数设置为CMainFrame::OnOpenCalc()。

      现在,当用户在菜单中选择“打开计算程序”,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);
      }
      

      在资源视图中,可以看到已经添加了“打开计算程序”菜单选项。选择该选项,应用程序将调用控制台应用程序的界面。

      最终效果:

      menu calc

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月4日
  • 已采纳回答 5月27日
  • 创建了问题 5月23日

悬赏问题

  • ¥15 ensp路由器启动不了一直报#
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要
  • ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改
  • ¥20 nao机器人语音识别问题
  • ¥15 怎么生成确定数目的泊松点过程
  • ¥15 layui数据表格多次重载的数据覆盖问题