消息缓冲机制就是把消息直接放在结构体里,以消息进行传输,缺点在于数据长度有限制,容易出错,优点在于可以多窗口传输,即时传输
消息缓冲类:(接受代码是重载一个消息函数,放在最后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; }