阅读量:0
MFC(Microsoft Foundation Classes)在Windows操作系统上提供了一个面向对象的封装库,用于开发Windows应用程序。MFC中的消息机制是一种用于处理用户输入、系统事件和其他通信的机制。MFC中有几种方法可以自定义消息。
使用WM_USER消息:WM_USER是一个基本的自定义消息,它可以用于发送自定义消息或命令。可以使用以下方式发送和处理自定义消息:
- 发送自定义消息:使用PostMessage、SendMessage或SendNotifyMessage函数来发送自定义消息。
- 处理自定义消息:在消息映射表(message map)中添加消息处理函数,该消息处理函数会在接收到自定义消息时被调用。
使用RegisterWindowMessage函数注册消息:使用RegisterWindowMessage函数可以注册一个全局唯一的消息ID,用于发送和接收自定义消息。
- 注册消息:使用RegisterWindowMessage函数注册一个全局唯一的消息ID。例如:
UINT uMsgMyCustomMessage = RegisterWindowMessage(_T("MyCustomMessage"));
- 发送自定义消息:使用PostMessage、SendMessage或SendNotifyMessage函数发送自定义消息。例如:
PostMessage(HWND_BROADCAST, uMsgMyCustomMessage, 0, 0);
- 处理自定义消息:在消息映射表中添加消息处理函数,该消息处理函数会在接收到自定义消息时被调用。例如:
ON_REGISTERED_MESSAGE(uMsgMyCustomMessage, OnMyCustomMessage)
afx_msg LRESULT OnMyCustomMessage(WPARAM wParam, LPARAM lParam);
- 注册消息:使用RegisterWindowMessage函数注册一个全局唯一的消息ID。例如:
使用WM_APP消息:WM_APP是一个保留给应用程序使用的消息范围。可以使用以下方式发送和处理自定义消息:
- 发送自定义消息:使用PostMessage、SendMessage或SendNotifyMessage函数发送自定义消息。例如:
PostMessage(WM_APP + 1, 0, 0);
- 处理自定义消息:在消息映射表中添加消息处理函数,该消息处理函数会在接收到自定义消息时被调用。例如:
ON_MESSAGE(WM_APP + 1, OnMyCustomMessage)
afx_msg LRESULT OnMyCustomMessage(WPARAM wParam, LPARAM lParam);
- 发送自定义消息:使用PostMessage、SendMessage或SendNotifyMessage函数发送自定义消息。例如:
这些方法可以根据需要来选择,以实现自定义消息的发送和处理。