自定义消息处理:
在视类头文件中定义用户消息:
#if _MSC_VER > 1000
#pragma once
const int WM_USERMSG=WM_USER+100; //定义用户消息
#endif // _MSC_VER > 1000
在视类头文件中声名用户消息:
protected:
//{{AFX_MSG(CXiaoXiView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnDestroy();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg LRESULT OnMyFunction(WPARAM wParam,LPARAM lParam);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); //声名消息响应函数
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
在视类源文件中添加消息映射声明:
BEGIN_MESSAGE_MAP(CXiaoXiView, CView)
//{{AFX_MSG_MAP(CXiaoXiView)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_CHAR()
ON_WM_DESTROY()
ON_WM_TIMER()
ON_MESSAGE(WM_USERMSG,OnMyFunction) //添加消息映射声明
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
定义用户消息响应函数:
在源文件中直接输入以下代码:
LRESULT CXiaoXiView::OnMyFunction(WPARAM wParam,LPARAM lParam)
{
AfxMessageBox("恭喜你,消息发送成功!");
//如果前者参数有问题,改成MessageBox("恭喜你,消息发送成功!"); 另外,项目->属性->常规->字符集->多字节字符集解决乱码或者其他之类问题
return NULL;
}
编写程序代码处理消息,添加WM_KEYDOWN消息处理函数,写上程序
在
void CDefMsaDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
HWND hwnd=GetSafeHwnd();
MessageBox((LPCTSTR)"恭喜你,消息发送成功!");
if(nChar==VK_DOWN)
{
::PostMessage(hwnd,WM_USERMSG,0,0);
return;
}
}
或用工具箱,添加一个按钮,右击添加事件响应程序。然后在响应程序里面添加
void CDefMsaDlg::OnBnClickedButton1()
{
HWND hwnd=GetSafeHwnd();
// TODO: 在此添加控件通知处理程序代码
::PostMessage(hwnd,WM_USERMSG,0,0);
return;
}