ON_MESSAGE宏

本文介绍了在MFC中如何利用ON_MESSAGE宏处理自定义消息,以及如何通过wParam和lParam传递参数。通过定义自定义消息、注册消息、实现消息响应函数,并在需要的地方发送消息来实现参数传递。示例代码展示了如何在对话框中响应自定义消息,并将鼠标位置作为参数发送。
摘要由CSDN通过智能技术生成
 

为何在自定义消息处理函数中无法利用wParamlParam传递指针?

ON_COMMAND()宏创建的自定义消息处理机制确实无法使用wParamlParam参数,这是由于ON_COMMAND()宏决定的

使用wParamlParam参数,那么应当使用ON_MESSAGE()宏,由它扩展生成的消息处理函数的原型中才有这两个参数

 

ON_MESSAGE响应的是自定义消息,有关自定义消息的处理请看如下步骤:
1.
定义消息:

在"C
实验ON_MESSAGEDlg"类的头文件中加入如下代码:
#define WM_CUSTOMIZE WM_USER+100
头文件中加入Customize的声明:

afx_msg LRESULT Customize(WPARAM wParam, LPARAM lParam);

2.cpp
文件中加入消息的注册

ON_MESSAGE(WM_CUSTOMIZE, Customize)

3
.加入消息响应函数实现

LRESULT C实验ON_MESSAGEDlg::Customize(WPARAM wParam, LPARAM lParam)

{

  CString strTittle;

  strTittle.Format("自定义消息参数:x=%d,y=%d",wParam,lParam);

  //SetWindowText(strTittle);

  setMessage(strTittle);

  return 1;

}

void C实验ON_MESSAGEDlg::setMessage(LPCTSTR newInfo)

{

   CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT1);

   pEdit->SetWindowTextA(newInfo);

}

 

4.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值