sendmessage: 将指定的消息发送到一个或多个窗口,直到窗口将消息处理完后才返回。
postmessage: 将一个消息发送到线程相关的消息队列中,不等线程处理消息就返回。消息队列里的消息通过Getmessage 或 PeekMesage 函数而获得。
1)使用SendMessage 来实现剪切、复制和粘贴
SendMessage(hwnd, WM_COPY, 0,0);
SendMessage(hwnd, WM_CUT,0,0);
SendMessage(hwnd, WM_PASTE, 0,0);
2) SendMessage 发送WM_COPYDATA消息在进程间传送数据
WM_COPYDATA消息允许进程间拷贝少量只读数据。应该使用SendMessage 方法来保证接收方在数据复制完前不返回,
这样发送方就不可能对数据进行删除和修改的操作。
如:
string strData = "VC 知识库 " ;
COPYDATASTRUCT cds;
cds.dwData = 0;
cds.cbData = strData.Length();
cds.lpData = strData.c_str();
::SendMessage(hwnd, WM_COPYDATA, NULL, (LPARAM)&cds);