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的消息。这就是我们所说的伪消息。代码片段上面都有详细注释,希望大家可以多看看。
首先在一个对话框里添加一个按键叫做“发送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的消息。这就是我们所说的伪消息。代码片段上面都有详细注释,希望大家可以多看看。
相关文章推荐
- VC++ 中ListCtrl经验总结
- Visual C++中MFC消息的分类
- VC++实现程序开机启动运行的方法
- VC++中HTControl控件类的CHTSlider控制杆控件类简介
- MFC中Radio Button的用法详解
- MFC对话框中添加状态栏的方法
- MFC创建右键弹出菜单的方法
- MFC中动态创建控件以及事件响应实现方法
- VC++中HTControl控制类使用之CHTDlgBase对话框基类实例
- C++ 关于MFC多线程编程的注意事项
- MFC程序对文件的处理方法
- MFC自定义消息的实现方法
- Vc++ 控件List Control用法总结
- MFC实现在文件尾追加数据的方法
- MFC控件大小随窗体大小而改变
- VC++的if语句应用范围分析
- MFC之ComboBox控件用法实例教程
- VC++在TXT文件指定位置追加内容的方法
- VC++植物大战僵尸中文版修改器实现代码
- CISBitmap派生的VC++位图透明类实例