为何在自定义消息处理函数中无法利用wParam或lParam传递指针?
ON_COMMAND()宏创建的自定义消息处理机制确实无法使用wParam与lParam参数,这是由于ON_COMMAND()宏决定的
使用wParam与lParam参数,那么应当使用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.