MFC在父对话框中嵌入子对话框

一、对话框中显示对话框的方法:  
1、首先创建要在对话框里显示的那个对话框,命名为:IDD_Dialog_Status。  
设置这个对话框的属性:  
1)、“Style”选择“Child”;中文版“样式”选择“下层”。  
2)、“Border”为“None”;中文版“边框”选择“无”。  
   
2、为了显示时能够准确定位,我们可以在主对话框中要显示对话框的地方放入一个Picture控件,命名为:IDC_STATUS,Visible属性去掉。  
   
3、创建需要嵌入的对话框对话框  
 StatusBar     *m_StatusBar;
 m_StatusBar = new StatusBar(this);
 m_StatusBar->Create(IDD_DIALOG_StatusBar);//创建状态栏对话框
4、移动pic控件到指定地方以及显示对话框
SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);//获取到系统信息
 if (rect.Width() <= 1024)
  MoveWindow(rect);
 else
 {
  rect.top = 0;
  rect.left = 0;
  rect.bottom = 768 - 30; //GetTaskbarHeight();
  rect.right = 1024;
  MoveWindow(rect);//把主对话框移动到这个位置
  CenterWindow();//居中显示
 }
 if (GetDlgItem(IDC_STATUS))//得到状态栏图片控件
 {
  rect1.top = rect.bottom - 25;
  rect1.left = rect.left + 8;
  rect1.right = rect.right - 8;
  rect1.bottom = rect1.top + 20;
  GetDlgItem(IDC_STATUS)->MoveWindow(rect1);//把图片控件移动到这个位置
  if (m_StatusBar){
   m_StatusBar->MoveWindow(&rect1);//把自对话框移动到这个位置
   m_StatusBar->ShowWindow(SW_SHOW);//显示对话框
   m_StatusBar->UpdateWindow();//更新对话框窗口
  }
 }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC(Microsoft Foundation Classes)是用于开发Windows应用程序的一套类库,其包含了用于创建和管理对话框的类。Matlab是一种高级的技术计算环境和编程语言,拥有丰富的绘图功能。 要在MFC对话框嵌入Matlab绘图,可以通过以下步骤实现: 1. 在MFC对话框添加一个静态文本框(CStatic)作为容纳Matlab绘图的容器,将其设置为需要的大小和位置。 2. 在MFC对话框的头文件包含Matlab引擎的头文件,并初始化Matlab引擎。 3. 在MFC对话框的OnInitDialog函数,创建一个Matlab引擎实例,并将其与前面添加的静态文本框相关联。 4. 使用Matlab引擎的绘图功能,将绘图结果输出到静态文本框。 5. 在MFC对话框的OnDestroy函数,关闭Matlab引擎实例,释放资源。 具体实现步骤如下: 首先,在MFC对话框类的头文件添加以下代码: #include "mat.h" // Matlab引擎头文件 Engine* matlabEngine; // Matlab引擎实例 然后,在OnInitDialog函数添加以下代码: // 初始化Matlab引擎 if (!(matlabEngine = engOpen(NULL))) { // 初始化失败的处理逻辑 } // 获取静态文本框的句柄 HWND hWndStatic = GetDlgItem(IDC_STATIC); // IDC_STATIC为静态文本框的ID // 将Matlab引擎与静态文本框关联 engOutputBuffer(matlabEngine, NULL, 0); // 禁用引擎的输出流 engSetVisible(matlabEngine, false); // 不显示Matlab在界面上的窗口 engSetFigureHandle(matlabEngine, (void*)hWndStatic); // 将Matlab引擎的绘图窗口设置为静态文本框的句柄 接下来,可以使用Matlab引擎的绘图功能进行绘图,例如: // 在Matlab引擎执行绘图命令 engEvalString(matlabEngine, "x = 0:0.1:2*pi; y = sin(x); plot(x, y);"); 最后,在OnDestroy函数关闭Matlab引擎实例: // 关闭Matlab引擎 engClose(matlabEngine); 通过以上步骤,我们就可以在MFC对话框嵌入Matlab的绘图,并将绘图结果显示在静态文本框。请根据具体的需求进行相应的修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值