有关这一部分内容,网上资源都是说很简单、很常用,但是没有完整的示例。我找到一份VB写的完整示例,后续再整理C++的。
SendMessage基础知识
网上相关的文字介绍有很多:
C++进程间通信之SendMessage和PostMessage
进程通信-SendMessage使用方法
示例程序
1、功能说明
程序总共分三大步骤:
1、发送端获取当前工程目录中图片名称,生成COPYDATA数据“C0_00"。用SendMessage发送给接收端。
2、接收端收到"C0_00"数据,显示在接收端窗体的PictureBox控件中。给发送端一个”DC0_00"的删除图片命令。
3、发送端收到“DC0_00"命令,删除文件夹中"C0_00"图片。至此,完成一张图片的发送、显示、删除操作,程序执行下一张图片
2、图片存放地址及名称
在程序的生成目录中,建立Image文件夹,里面存入2张图片,名称显示如下:
2、VB代码
发送端代码:
Imports System.IO
Public Class FormSender
Protected Overrides Sub WndProc(ByRef m As Message)
Select Case (m.Msg)
Case Win32Api.WM_COPYDATA
Dim mystr As Win32Api.COPYDATASTRUCT = New Win32Api.COPYDATASTRUCT
Dim mytype As Type = mystr.GetType 'mytype 为 Win32Api.COPYDATASTRUCT
mystr = CType(m.GetLParam(mytype), Win32Api.COPYDATASTRUCT) 'mystr获取到了COPYDATASTRUCT结构中的数据
'删除图片