QQ登录

只需一步,快速开始

333上位机VC MFC实现进程间的通讯

[ 复制链接 ]

333上位机VC MFC实现进程间的通讯

333上位机VC MFC实现进程间的通讯

实现进程间的通讯
功能展示
进程就是独立可单独运行的程序,不同的程序之间时常得进行通讯完全特定功能,我们当前例程实现两程序间的通讯功能,效果如图,点击不同的按钮会向系统发送我们自己注册的消息,如果受控的程序也注册了相同的消息,就可以接收到我们发送的消息,从而执行想要的功能;

要点提示
我们操作系统的窗口消息机制允许程序间通过函数PostMessage()或SendMessage()等发送消息的函数进行通讯 ,具体发送的消息可以通过WM_USER+数字定义或通过RegisterWindowMessage()函数注册,当前例程通过后者定义,全消息唯一化。这个函数用于在操作系统中注册一唯一的消息,如果多个程序注册了相同名字的消息,那么程序就会得到相同的消息标识。
UINT RegisterWindowMessage( LPCTSTR lpString);
lpString被注册消息的名字
返回值为Long类型变量,& C000 到 & FFFF之间的一个消息编号。零意味着出错(注册消息失败)

实现功能
1.新建基于对话框的应用程序,用于控制外部程序。
2.添加四按钮<最大化外部窗口><最小化外部窗口><还原外部窗口><关闭外部窗口>,关联点击函数用于向系统发送自定义的消息
void CGkbc8Dlg::OnMax()
{
UINT maxMsg = RegisterWindowMessage("最大化");
:ostMessage(HWND_BROADCAST,maxMsg,0,0);
}

void CGkbc8Dlg::OnMin()
{
UINT minMsg = RegisterWindowMessage("最小化");
:ostMessage(HWND_BROADCAST,minMsg,0,0);
}

void CGkbc8Dlg::OnBrestore()
{
UINT revMsg = RegisterWindowMessage("还原");
:ostMessage(HWND_BROADCAST,revMsg,0,0);
}

void CGkbc8Dlg::OnClose()
{
UINT closeMsg = RegisterWindowMessage("关闭");
:ostMessage(HWND_BROADCAST,closeMsg,0,0);
}
3.再新建一基于对话框的应用程序,用于响应消息;
4.定义四个消息成员变量private: UINT m_nMinMsg,m_nMaxMsg,m_nResMsg,m_nCloseMsg;并在程序初始化时注册系统消息,给此四变量赋值;
m_nMinMsg = RegisterWindowMessage("最小化");
m_nMaxMsg = RegisterWindowMessage("最大化");
m_nResMsg = RegisterWindowMessage("还原");
m_nCloseMsg = RegisterWindowMessage("关闭");
5.给主对话框类添加虚函数PreTranslateMessage()在内部实现四个消息的处理
BOOL CSlaverDlg:reTranslateMessage(MSG* pMsg)
{
if(pMsg->message == m_nMinMsg)
{
PostMessage(WM_SYSCOMMAND,SC_MINIMIZE,0);
}
else if(pMsg->message == m_nMaxMsg)
{
PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);
}
else if(pMsg->message == m_nResMsg)
{
PostMessage(WM_SYSCOMMAND,SC_RESTORE,0);
}
else if(pMsg->message == m_nCloseMsg)
{
PostMessage(WM_SYSCOMMAND,SC_CLOSE,0);
}

return CDialog:reTranslateMessage(pMsg);
}


我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:333.上位机VC MFC实现进程间的通讯.zip 
文件大小:153.53 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索