您的位置:首页 > 编程语言 > C语言/C++

MFC如何用模拟发送一个伪消息

2016-06-05 10:45 441 查看
MFC做工程时我们有时需要在相应的地方加个模拟消息(就是不是真正系统产生的,是我们创造的消息),比如在有些代码里面,没有执行关闭消息,但是我们想在这个地方实现程序的关闭,我们就可以制作一个模拟关闭程序的消息,下面我给大家介绍下具体怎么操作。

首先在一个对话框里添加一个按键叫做“发送Ctr+左键点击消息”,ID设置为 IDC_SIMULATEMESSAGE,双击之后添加如下代码:

// 用按键发送模拟消息 让消息处理函数去截获
// 点击“发送Ctr+左键点击消息”按键之后,发送一个 WM_LBUTTONDOWN 模拟消息
void CMyDlg::OnSimulatemessage()
{
// 参数1:消息类型 WM_LBUTTONDOWN,
// 参数2:给下面 nFlags 传入的值 MK_CONTROL | MK_LBUTTON 指的是发送按下ctr键+鼠标左键的模拟消息
// 参数3:给下面 point 传入的值
SendMessage(WM_LBUTTONDOWN, MK_CONTROL | MK_LBUTTON, 0x12345678);

}然后我们在添加一个 WM_LBUTTONDOWN的消息映射函数,代码如下:
// 消息处理函数
void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// 当我们按下对话框的“发送Ctr+左键点击消息”按键,产生的模拟消息会进入这个函数
// 因为是我们人为创造的,所以叫做模拟消息

// 判断消息的种类
if(nFlags == MK_CONTROL+MK_LBUTTON)
AfxMessageBox("Ctr+左键被按下");

CDialog::OnLButtonDown(nFlags, point);
}当我们点击按键的时候就会发生一个模拟的消息,这个消息是WM_LBUTTONDOWM的消息。这就是我们所说的伪消息。代码片段上面都有详细注释,希望大家可以多看看。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息