MFC在窗口类外部或者另一个窗口获取其他窗口控件中的内容


  测试子窗口获取其他窗口控件的内容,并显示到子窗口中(2种方法),主要是因为直接在子窗口上获取或出现断言的错误

  1,在其他窗口中 设置静态变量static  str,提前赋值好, 这样在子窗口类中就能访问这个数据


        SetDlgItemText(IDC_STATIC1, CHome_WorkDlg::str);    //记住要类外初始化  static

        其实不推荐这种方法 下面是不用设置静态变量的方法


  2,HWND hWnd = ::FindWindow(NULL, _T("Home_Work"));        //得到窗口的句柄(第2个参:其他窗口的名称)

     //由句柄得到对话框的对象指针(( CHome_WorkDlg)其他窗口类名)
    CHome_WorkDlg* pWnd = (CHome_WorkDlg*)CHome_WorkDlg::FromHandle(hWnd);

    这样之后(1)可以 

    CEdit* pBoxOne = (CEdit*)pWnd->GetDlgItem(IDC_EDIT2);    //((IDC_EDIT2)其他窗口控件名)
    pBoxOne->GetWindowText(str4);

    还可以(2)在其它窗口中定义获取变量的方法

    str4= pWnd->Get_Edit();   //其他窗口(CHome_WorkDlg)中的方法
    
    最后

    SetDlgItemText(IDC_STATIC1, str4);    //在子窗口控件上填上内容

END ...

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 外部程序嵌入MFC窗口是指将一个独立的外部程序嵌入到MFC(Microsoft Foundation Class)窗口。这种技术通常被用于在应用程序集成一些第三方的功能或工具。以下是一个大致的实现过程: 首先,需要创建一个MFC窗口,可以使用MFC的资源编辑器来创建一个对话框或其他窗口控件。 然后,在MFC窗口创建一个CWnd控件对象,这个对象将用于承载外部程序的窗口。 接下来,使用WinAPI函数来创建外部程序的窗口,并将其父窗口设置为CWnd对象的句柄。这样外部程序的窗口就会嵌入到MFC窗口,成为其窗口。 在实现过程,可能需要处理一些与外部程序窗口的交互,例如获取外部程序的句柄,处理消息传递等。可以使用一些函数如FindWindow来获取外部程序的句柄,并通过重载MFC窗口的消息处理函数来处理与外部程序窗口的交互。 最后,需要在适当的时候销毁外部程序的窗口,并释放相关资源,以确保程序的正常运行和内存的管理。 总的来说,外部程序嵌入MFC窗口是一种将两个独立程序的界面进行整合的方法,通过合理地处理消息传递和交互逻辑,可以实现功能上的集成和用户体验的提升。 ### 回答2: 外部程序嵌入MFC窗口是指将一个独立的外部程序嵌入到MFC应用程序的窗口显示,并且能够与应用程序进行交互。这样的嵌入可以提供更多的功能和服务,增强应用程序的功能性和用户体验。 实现外部程序嵌入MFC窗口的关键是利用MFC和函数来创建和管理嵌入的进程。下面是实现的基本步骤: 1. 创建一个MFC应用程序,并在窗口添加一个控件(如一个 CStatic 控件)来充当嵌入的容器。 2. 在应用程序引入系统的 COM 组件,如 OLE ,以便能够与外部程序进行交互。 3. 在应用程序创建并启动外部程序,可以使用 MFC 提供的 CWinApp 的 CreateProcess 函数或者使用 Windows API 的 CreateProcess 函数。 4. 获取外部程序的窗口句柄,可以使用 Windows API 的 FindWindow 函数或者使用外部程序的进程 ID。 5. 将外部程序的窗口句柄嵌入到应用程序窗口的容器控件,可以使用 MFC 提供的 CWnd 的 Attach 函数。 6. 根据需要,可以设置嵌入的程序的窗口位置和大小。 7. 在应用程序处理嵌入程序的消息和事件,可以使用 MFC 提供的消息映射机制和事件处理函数。 8. 在应用程序关闭或嵌入程序退出时,释放相关的资源,可以使用 MFC 提供的相应函数(如 CWnd::Detach 、 TerminateProcess 等)。 总结:外部程序嵌入到MFC窗口是一种提供更多功能和增强用户体验的方法。通过使用MFC和函数,我们可以轻松地将外部程序嵌入到应用程序的窗口,并与之进行交互。这样的嵌入给用户带来了更多的便利和功能性。 ### 回答3: 外部程序嵌入MFC窗口是指将一个独立的外部程序嵌入到MFC(Microsoft Foundation Class)窗口进行显示和操作。这种技术常用于在MFC应用程序集成其他应用程序的功能,并且能够与MFC应用程序进行交互。 要实现外部程序嵌入MFC窗口,可以按以下步骤进行: 1. 获取目标外部程序的句柄:通过使用Win32 API函数,如FindWindow函数,获取到目标外部程序的句柄。句柄是一个唯一标识符,用于标识一个窗口。 2. 创建窗口:在MFC程序的窗口,使用CreateEx函数创建一个窗口来容纳外部程序。可以根据需要设置窗口的样式和属性。 3. 设置窗口句柄:将外部程序的句柄设置为窗口的句柄,使用SetParent函数实现。这样,外部程序的窗口就能嵌入到MFC程序的窗口了。 4. 调整窗口大小和位置:根据需要,可以使用MoveWindow函数来调整外部程序窗口嵌入的位置和大小。 5. 处理交互事件:通过重写MFC程序的消息处理函数,处理与外部程序的交互事件。根据外部程序提供的消息、回调函数或API,来实现与外部程序的通信和交互。 6. 销毁窗口:在不需要嵌入外部程序的窗口时,使用DestroyWindow函数来销毁窗口,释放资源。 外部程序嵌入MFC窗口能够使得MFC应用程序具备更加丰富和强大的功能,提升用户体验,实现不同程序之间的无缝衔接。但也要注意兼容性和安全性问题,确保嵌入的外部程序不会对系统和数据造成损害。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值