消息缓冲机制就是把消息直接放在结构体里,以消息进行传输,缺点在于数据长度有限制,容易出错,优点在于可以多窗口传输,即时传输
消息缓冲类:(接受代码是重载一个消息函数,放在最后exe代码中展现)
#include "stdafx.h"
#include "copyData.h"
CString name,content;
COPYDATASTRUCT cd;
copyData::copyData(void)
{
cd.dwData=0;
}
copyData::~copyData(void)
{
}
int flag=0;
BOOL CALLBACK find(HWND hwnd, LPARAM lParam)
{
char s[200];
GetWindowText(hwnd,s,200);
if(s==name)
{
SendMessage(hwnd, WM_COPYDATA, 0, (LPARAM)(&cd));
flag=1;
}
return 1;
}
int copyData::send(CString na,CString co)//发消息
{
name=na;content=co;
cd.cbData=content.GetLength()+1;
cd.lpData=(void*)content.GetBuffer(cd.cbData);
flag=0;
EnumWindows(find,NULL);
return flag;
}