WEB开发网
开发学院软件开发VC 在VC++ 6.0下利用消息实现内部进程通讯 阅读

在VC++ 6.0下利用消息实现内部进程通讯

 2010-08-15 20:47:36 来源:WEB开发网   
核心提示:(3)在MainFrm.h中添加自定 义消息:#define WM_COMM WM_USER+100,(4)添加自定义消息WM_COMM 的消息映射:BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)//{{AFX_MSG_MAP(CMainFrame)// NOTE - the Clas

(3)在MainFrm.h中添加自定 义消息:#define WM_COMM WM_USER+100。

(4)添加自定义消息WM_COMM 的消息映射:

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code !
ON_WM_CREATE()
//}} AFX_MSG_MAP
ON_MESSAGE(WM_COMM,OnSendMsg)
END_MESSAGE_MAP()

(5)完成消息响应函数OnSendMsg()

void CMainFrame::OnSendMsg(WPARAM wParam, LPARAM lParam)
{
if (wParam==0 && lParam==0)
AfxMessageBox("主控程序发送 命令一!");
if(wParam==0 && lParam==1)
AfxMessageBox("主控程序发送命令二!");
if(wParam==1 && lParam==0)
AfxMessageBox("主控程序发送命令三! ");
}

我们便可以通过辨别消息的两个消息参数来区分 主控程序发送的是哪一个命令从而可以执行相应的操作。执行主控程序和底层工 作程序由于本程序采用的是SendMessage()所以当主控程序发送消息给底层工作程 序时,底层工作程序弹出响应的模式对话框,在没有关闭对话框前此消息未处理 完,SendMessage()也就没有执行完,所以主控程序呈阻塞状态,如改用 PoseMessage()则不会发生阻塞,具体选用哪个函数还应根据实际要求灵活掌握。

结论: 通过上面的实例可以看出利用消息进行进程间通信不失为一种便捷 的方法,进程间的数据交换量不大却能完成相当的功能,上下层次有着明显的接口 ,上层和底层只通过这个接口进行通讯,因此只要对上下层程序制定好规范详尽 的协议便可编制出协调性很好的软件控制系统。

上一页  1 2 3 

Tags:VC 利用 消息

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接