当前位置: 首页 > news >正文

深圳方维网站设计公司seo网站建设视频

深圳方维网站设计公司,seo网站建设视频,普升高端品牌网站建设,wordpress无法拖动小工具栏文章的目的为了记录使用C 进行QT Widget 开发学习的经历。临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。 相关链接: 开源 C QT Widget 开发(一)工程文件结构-CSDN博客 开源…

 文章的目的为了记录使用C++ 进行QT Widget 开发学习的经历。临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。
 

 相关链接:

开源 C++ QT Widget 开发(一)工程文件结构-CSDN博客

开源 C++ QT Widget 开发(二)基本控件应用-CSDN博客

开源 C++ QT Widget 开发(三)图表--波形显示器-CSDN博客

开源 C++ QT Widget 开发(四)文件--二进制文件查看编辑-CSDN博客

 开源 C++ QT Widget 开发(五)通讯--串口调试-CSDN博客

开源 C++ QT Widget 开发(六)通讯--TCP调试-CSDN博客

开源 C++ QT Widget 开发(七)线程--多线程及通讯-CSDN博客

开源 C++ QT Widget 开发(八)网络--Http文件下载-CSDN博客

开源 C++ QT Widget 开发(九)图表--仪表盘-CSDN博客

开源 C++ QT Widget 开发(十)IPC进程间通信--共享内存-CSDN博客

开源 C++ QT Widget 开发(十一)进程间通信--Windows 窗口通信-CSDN博客

开源 C++ QT Widget 开发(十二)图表--环境监测表盘-CSDN博客


推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

本章主要内容:跨进程 Windows 窗口通信的功能,使用的是 WM_COPYDATA 消息。

目录:

1.功能描述

2.代码分析

3.所有源码

4.效果演示

一、功能描述

总体功能概述
这是一个典型的生产者-消费者模型:

程序1(发送端):包含一个按钮,点击时寻找特定窗口并发送消息

程序2(接收端):监听并处理收到的消息,显示内容

它们使用 Windows 的 WM_COPYDATA 消息机制进行进程间通信。

二、代码分析

1.发送端

FindWindow(NULL, L"acceptWnd"):通过窗口标题查找名为 "acceptWnd" 的窗口

返回窗口句柄 HWND,如果找不到返回 NULL

数据准备:

QByteArray ary = "test message!":创建要发送的数据

自动包含结尾的 null 字符

消息结构:

COPYDATASTRUCT 是 Windows 用于进程间数据传输的标准结构

dwData:用户自定义标识(这里使用 WM_APP)

lpData:指向数据的指针

cbData:数据长度(字节数)

消息发送:

SendMessage():同步发送消息,会阻塞直到接收方处理完成

WM_COPYDATA:特殊的 Windows 消息,用于进程间数据传输

Windows 会自动处理内存映射,确保接收进程能访问数据

2.接收端

消息转换:

nativeEvent 是 Qt 处理原生平台消息的入口

将通用的 void* message 转换为 Windows 的 MSG 结构

平台检查:

确认是 Windows 平台的原生消息

消息类型判断:

检查是否是 WM_COPYDATA 消息

数据提取:

msg->lParam 包含指向 COPYDATASTRUCT 的指针

使用 reinterpret_cast 进行类型转换

数据处理:

将接收到的数据转换为 QByteArray

使用消息框显示接收到的内容

三、所有源码

1.发送端mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <qt_windows.h>
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

2.发送端mianwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{HWND accWnd =FindWindow(NULL,L"acceptWnd");if(accWnd){QByteArray ary = "test message!";COPYDATASTRUCT copydata;copydata.dwData = WM_APP;copydata.lpData = ary.data();copydata.cbData =ary.length();SendMessage(accWnd,WM_COPYDATA,NULL,reinterpret_cast<LPARAM>(&copydata));}
}

3.接收端mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <qt_windows.h>
#include <QMessageBox>
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();
protected:bool nativeEvent(const QByteArray &eventType, void *message, long *result);private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

4.接收端mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{MSG *msg = static_cast<MSG*>(message);  //类型转换if (eventType == "windows_generic_MSG") //windows平台{MSG* msg = reinterpret_cast<MSG*>(message); //if(msg->message == WM_COPYDATA)//来自A进程的消息{COPYDATASTRUCT *mydata =reinterpret_cast<COPYDATASTRUCT*>(msg->lParam);if(mydata){QByteArray tsr = QByteArray(reinterpret_cast<char*>(mydata->lpData));QMessageBox::information(NULL,"recvmag",QString("string:%1").arg(tsr.data()));}}}return QWidget::nativeEvent(eventType, message, result);//交给Qt处理
}

四、效果演示
将message_send 和message_recv都运行,按下发送按键,接收窗口收到消息。

http://www.dtcms.com/a/500914.html

相关文章:

  • 有网站的源代码如何做网站如何上传自己的做的网站
  • 身份认证技术对比:Session、JWT、Token、SSO、OAuth 2.0
  • 温州网站建设 首选国鼎网络好昆山网站建设义搏
  • 青岛慧思网站建设wordpress主题防止破解
  • 【小白笔记】普通二叉树(General Binary Tree)和二叉搜索树的最近公共祖先(LCA)
  • 画出网站和目录结构图电子商务就业岗位有哪些
  • 网站开发的有关公司如何设计小程序
  • 架构建模技术深度解析:SysML与AADL的全方位对比
  • 1920的网站做字体大小车行网站源码
  • 网站建设 接单什么网站做简历免费
  • 网页打不开但是qq能上是怎么回事aso推广优化
  • 汽车设计网站wordpress网页不存在
  • 做的网站很卡是什么原因宁波网站建设费用是多少钱
  • 淘客返利网站怎么做揭阳网站制作软件
  • MCAL故障注入点的作用解析
  • RTX5060Ti安装双系统ubuntu22.04各种踩坑点(黑屏,引导区修复、装驱动、server版本安装)
  • 酒店做爰视频网站平面设计创意构图
  • 网站的轮播图一般是做多大爬虫科技网站建设
  • 首页调用网站栏目id网站设计版权
  • 礼品网站建设广州冼村改造
  • 做学校网站素材图片广州短视频内容营销平台
  • 中国建设银行网官方网站南京网站建设优化
  • 在哪个网站上做实验仪器比较好米拓建设网站
  • dedecms织梦搬家公司网站模板小商铺装修
  • 5P03舞台灯P沟道MOS管-HC3407A 支持-30V -4.1A SOT-23封装 低内阻 原厂直供 高性价比PMOS选型表
  • 整形网站建设方案策划书怎样做网站的当前位置栏
  • 网站没收录可以做排名wordpress好用么
  • seo整站优化公司持续监控网站模版设计
  • 网站设计说明范文还有哪些网站可以做H5
  • 室内装修网站html源码 企业用c语言可以做网站吗