Qt中IPC(进程间通信)的方式一:WM_COPYDATA消息

2023-11-05

数据复制消息WM_COPYDATA是Windows中一个特殊的消息,通过这个消息能够在进程间传递数据。

WM_COPYDATA消息含两个參数WPARAM wParam和LPARAM  lParam,WPARAM和LPARAM是匈牙利命名法,历史更迭,WPARAM指32位整形变量,LPARAM指32为整形变量指针。发送WM_COPYDATA时,wParam赋值为发送此消息的窗体,lParam则指向一个COPYDATASTRUCT结构:

  typedef struct{
                ULONG_PTR   dwData;
                DWOED   cdData;
                PVOID   lpData;
        };

 

        该结构体中,dwData能够使随意值,lpData是须要发送给窗体所在进程的数据地址,cbData是lpData发送数据的字节数。

 SendMessage(
       hwndto,              //目标窗体句柄
       (UINT)WM_COPYDATA,   //指定发送的数据
       (WPARAM)hwndfrom,    //将源窗体句柄做WPARAM參数
       (LPARAM)&cds         //将COPYDATASTRUCT做LPARAM參数
   );

2. Qt中处理自定义消息:(前提是开启了事件循环QEventLoop)

方式一:nativeEventFilter

使用installNativeEventFilter注册自定义事件过滤器,继承QAbstractNativeEventFilter实现nativeEventFilter方法以实现自定义事件过滤器。

//QCoreApplication
 
void installNativeEventFilter(QAbstractNativeEventFilter *filterObj);
 
//QAbstractNativeEventFilter
 
virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *result)=0;

方式二:nativeEvent

继承QWidget重写nativeEvent方法即可。

//QWidget:
 
virtual bool nativeEvent(const QByteArray &eventType, void *message, long *result);

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt中IPC(进程间通信)的方式一:WM_COPYDATA消息 的相关文章

  • 使用蓝牙耳机听群晖ds218play中的音乐(audio station)

    缘起 有时需要欣赏nas中的音乐而又不影响家人 有什么方法呢 思路 研究了一下 发现新版的群晖dms支持蓝牙usb蓝牙适配器 可以使用audio station播放 蓝牙耳机收听 步骤 1 购买CSR USB蓝牙适配器 2 插入ds218p
  • 大数据CDC技术

    1 简介 CDC全称是Change Data Capture 是一种捕获增量数据的技术统称 目前主要应用在捕获数据库数据变更的技术 其中数据库变更包括DDL DML DCL等语句触发的变更 在数据备份容灾 数据分发 面向数仓的数据集成等场景
  • JavaScript实现WebService的http的Post请求

    javascript 这个脚本实现Webservice调用 function AjaxFunc var url http localhost MyService Service asmx var method DollarConvertTo
  • 使用Jmeter做压力测试,参数化

    1 首先在工作台下添加一个线程组 测试计划右键 添加 线程 用户 线程组 根据需求填写线程组信息 根据测试数据量填写 线程数也就是并发数 下面的调度时间代表规定的时间内完成并发 2 添加HTTP请求 在线程组下右键 添加 取样器 HTTP请
  • 微信小程序image组件的mode总结+介绍(包含heightFix)

    2 10 3版本后 微信小程序的图片即image组件新增了heightFix属性 mode 总共具有14种属性 满足各种情况的放置需要 14种属性可以分为两大类 一种是完全保留的缩放属性 一种是裁剪属性 原图 缩放属性 scaleToFil
  • 常见的List接口的实现类

    常见的List接口的实现类 ArrayList 数组实现 查询快 增删慢 轻量级 线程不安全 LinkedList 双向链表实现 增删快 查询慢 线程不安全 Vector 数组实现 重量级 线程安全 使用少 ArrayList实现类 pub
  • cesium-添加点线面可以动可编辑

    使用 const drawEntities new CesiumEntityDraw viewer drawEntities startDraw 需要绘制的类型 CesiumEntityDraw ts文件 import Cesium fro
  • RabbitMQ编程模型

    Hello World 在本教程的这一部分中 我们将用 Java 编写两个程序 发送单个消息的生产者和接收消息并将其打印出来的消费者 我们将忽略 Java API 中的一些细节 专注于这个非常简单的事情 以便开始 这是一个 Hello Wo
  • vue3的element-plus的el-dialog的样式加上scoped发现:deep()不再生效解决方案

    想要将 弹框 el dialog header el dialog body 的padding值设为0 但是 el dialog 用了 append to body 属性情况下 官网解释 Dialog 自身是否插入至 body 元素上 嵌套
  • C语言入门教程之三天入门C语言(第二天结构体与指针使用)

    三天学习C语言 第二步 一 C语言中的几种集合的表达形式 数组类型 数组扩展 结构体的表示 联合体的表示 二 sizeof 的使用 三 指针的使用 指针变量 未完待续 指针与数组 一 C语言中的几种集合的表达形式 在数学中一般一组数据的集合

随机推荐

  • 前端面试100道

    幕布链接 完整版 面试终极 幕布 目录 1 弹性布局的认识 2 Var和let有什么区别 3 和 的区别 4 Js事件 5 Vue计算属性 6 Vue采用指令 7 Html中的浮动怎么使用 8 箭头函数 9 Js的this指向 10 Cal
  • css兼容浏览器的各种背景渐变

    需要兼容各浏览要注意的是 必须加上浏览器的私有前缀 否则一般都是不生效的 浏览器的私有前缀主要是解决不同浏览器的兼容性问题 webkit 谷歌浏览器 安卓 moz 火狐浏览器 o opera浏览器 ms ie浏览器 首先来个简单的也最常见的
  • 父组件更新,子组件未更新

    囧 问题 项目中 渲染的数据为对象数组arr obj obj obj 业务需要要给某个对象obj增加一个属性key arr forEach obj gt obj key 囧 但是当在父组件中修改这个属性后 子组件并没有随着更新 原因 没有通
  • 软件测试笔试题含答案

    目录 一 填空 1 系统测试使用 C 技术 主要测试被测应用的高级互操作性需求 而无需考虑被测试应用的内部结构 2 单元测试主要的测试技术不包括 B 3 A 的目的是对最终软件系统进行全面的测试 确保最终软件系统满足产品需求并且遵循系统设计
  • ReactNative中使用WebSocket

    首先说说发布订阅这种设计模式 这种模式我给它起了个别名叫遥控炸弹 很多朋友理解不了这种模式 那 举个例子 张三是个法外狂徒 它要去复仇 他想去炸掉仇家的房子 他来到仇家所在的小区 拿出自己准备的炸弹 监听 丢进仇家的屋里 页面 等他走出小区
  • Hadoop3.x集成HBase

    HBase作为Hadoop家族中实现高并发的利器 我们来看看怎么进行集成 1 下载并上传到服务器 目前使用2 3 5版本 wget https mirrors bfsu edu cn apache hbase 2 3 5 hbase 2 3
  • 软件工程—软件测试

    前言 软件测试是为了发现错误而执行程序的过程 是对需求分析 设计和编码3个阶段进行的最终复审 下面介绍了软件测试的原则 方法过程等 测试用例的设计 测试的步骤还有软件的调试技术 一 软件测试 软件测试的目的 1 测试是程序的执行过程 目的在
  • QT Creator 自定义控件的方法和步骤

    QT版本 QT 6 2 3 QT Creator6 0 2 Community 是MSVC编写 要注意看哦 编写自定义控件的时候也要用 1 打开QT Creator 点击 文件 gt 新建文件或项目 gt 其他项目 gt QT4设计师自定义
  • 微信小程序在wxml中使用函数

    方法一 在wxml中直接添加模块 就可以在wxml中直接引用 举个例子
  • VS2022 安装 .NET Framework 4.0 和 .NET Framework 4.5 的方法

    前言 2022年5月27日 刚刚把VS2019升级到了VS2022 安装时已经不提供 NET Framework 4 0和 NET Framework 4 5的目标框架了 打开VS也提示不支持目标框架 解决方法 1 下载 NET Frame
  • tcp的半连接与完全连接队列

    队列及参数 server端的半连接队列 syn队列 在三次握手协议中 服务器维护一个半连接队列 该队列为每个客户端的SYN包开设一个条目 服务端在接收到SYN包的时候 就已经创建了request sock结构 存储在半连接队列中 该条目表明
  • 信号处理算法(4):全球最快的傅里叶变换算法(FFTW)

    本文大部分内容转载自博客 congwulong https blog csdn net congwulong article details 7576012 FFTW Fastest Fourier Transform in the Wes
  • C++Primer 第五版 ——《第十四章 》重载运算符 与 类型转换

    目录 基本概念 如何调用 非成员函数 和 成员函数的 重载运算符 491P 有哪些运算符就不应该被重载 491P 重载运算符的 返回类型 应该与 内置版本的返回类型兼容 492P 重载 赋值和 复合赋值运算符 应该返回左侧运算对象的一个引用
  • C语言 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

    include
  • 线上问题总结:运行在容器里的springboot应用,出现多次oom

    项目运行环境 运行环境 k8s docker open jdk11 springBoot 公司的项目都是使用kubernate docker来管理 运行应用 问题描述 发现项目出现多次oom 排查到的原因有两个 1是分配的堆内存太小 2是代
  • Android屏幕适配

    前言 请先阅读前言 Android开发中 Android屏幕适配是一件很棘手的事 需要注意的几点 1 尽量使用线性布局 LinearLayout 相对布局 RelativeLayout 和帧布局 FrameLayout 不要使用绝对布局 2
  • grep 参数使用和实例

    一 grep 参数使用 Gun grep 选项 b 在搜索到的行的前面打印该行所在的块号码 c 只显示有多少行匹配 而不具体显示匹配的行 h 不显示文件名 i 在字符串比较的时候忽略大小写 l 只显示包含匹配模板的行的文件名清单 不同项目之
  • 怎么解决Ubuntu14.04不能打正确拼音

    重启一下
  • js dom节点类型

    目录 节点树方法 1 parentNode父节点 2 childNodes字节点们 3 firstChild lastChild 字节点 4 previousSibling nextSibling 兄弟节点 5 nodeName 6 nod
  • Qt中IPC(进程间通信)的方式一:WM_COPYDATA消息

    数据复制消息WM COPYDATA是Windows中一个特殊的消息 通过这个消息能够在进程间传递数据 WM COPYDATA消息含两个參数WPARAM wParam和LPARAM lParam WPARAM和LPARAM是匈牙利命名法 历史