QT与MCF通信
QT传消息到MFC
先抓取窗口句柄,然后再用win32的WM_COPYDATA进行消息传递。具体抓取窗口句柄和调用外部mfc 的exe方法见QT内嵌外部exe程序。与之前不同的是,这里抓取句柄要写成全局的,因为当内嵌成功后,再去抓取用于消息传递时,就抓不到了。
Qt端
需要用到以下头文件
#include <windows.h>
#include <windowsx.h>
main.h
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
//全局变量,用于抓取窗口句柄。因为mainwindow的pushbotton函数里也要用,所以设为全局
HWND SimpackWnd;//子窗口
HWND hSendWindow;//父窗口
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
void MainWindow::on_pushButton_clicked()
{