鱼C论坛

 找回密码
 立即注册
查看: 496|回复: 2

[已解决]自定义消息

[复制链接]
发表于 2023-8-3 07:42:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

我的问题:

请下载附件,附件中的代码就是https://blog.csdn.net/qq_38161654/article/details/103871140  这个博文

能够录音,其中有几个通过类向导创建的自定义消息,可是我找不到 自定义消息的触发代码 ??
最佳答案
2023-8-3 07:42:45
标题:自定义消息的触发代码

在 MFC 中,自定义消息的触发是通过发送消息来实现的。可以使用以下方式触发自定义消息:

1. 使用 SendMessage() 函数发送消息到窗口或控件:
  1. // 发送自定义消息 WM_MY_CUSTOM_MESSAGE 到窗口 hWnd
  2. SendMessage(hWnd, WM_MY_CUSTOM_MESSAGE, WPARAM_PARAM, LPARAM_PARAM);
复制代码
其中 WM_MY_CUSTOM_MESSAGE 是自定义消息的消息 ID,WPARAM_PARAMLPARAM_PARAM 分别是消息的 wParam 和 lParam 参数,根据需要进行设置。

2. 使用 PostMessage() 函数异步地发送消息到窗口或控件:
  1. // 异步发送自定义消息 WM_MY_CUSTOM_MESSAGE 到窗口 hWnd
  2. PostMessage(hWnd, WM_MY_CUSTOM_MESSAGE, WPARAM_PARAM, LPARAM_PARAM);
复制代码

3. 在窗口或控件类中重写消息处理函数来响应自定义消息:
  1. BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
  2.     ON_MESSAGE(WM_MY_CUSTOM_MESSAGE, OnMyCustomMessage)
  3. END_MESSAGE_MAP()
  4. // 自定义消息处理函数
  5. LRESULT CMyWnd::OnMyCustomMessage(WPARAM wParam, LPARAM lParam)
  6. {
  7.     // 处理自定义消息
  8.     return 0;
  9. }
复制代码

在代码中,需要自己定义和使用的自定义消息的触发代码应该是在合适的时机调用 SendMessage()PostMessage() 函数,并指定对应的消息 ID、wParam 和 lParam 参数。

请根据你的具体需求,在相关位置添加适当的代码以触发自定义消息。希望对你有所帮助!如果有任何问题,请随时提问。

csyin.zip

133.38 KB, 下载次数: 0

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-3 07:42:44 | 显示全部楼层
你好!根据您的描述,您想要了解如何触发自定义消息。在您提供的链接中,代码示例是使用MFC(Microsoft Foundation Classes)来实现的录音功能。自定义消息的触发代码通常位于消息处理函数中。

要触发自定义消息,您需要进行以下步骤:

1. 打开您的源代码文件,通常是一个.cpp文件。
2. 在您的消息映射表中添加一个条目,将自定义消息与消息处理函数关联起来。消息映射表通常位于您的类声明的末尾,以 BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 包围。示例代码如下:

  1. BEGIN_MESSAGE_MAP(YourClass, CDialog)
  2.     // 其他消息映射条目
  3.     ON_MESSAGE(WM_CUSTOM_MESSAGE, OnCustomMessage)
  4. END_MESSAGE_MAP()
复制代码


3. 在您的类中添加消息处理函数  OnCustomMessage ,并在其中编写处理自定义消息的代码。示例代码如下:

  1. LRESULT YourClass::OnCustomMessage(WPARAM wParam, LPARAM lParam)
  2. {
  3.     // 在这里编写处理自定义消息的代码
  4.     // 可以根据需要访问传递的参数 wParam 和 lParam
  5.     // 返回值通常为 0
  6.     return 0;
  7. }
复制代码


4. 在您的其他代码中,通过使用  PostMessage  或  SendMessage  函数来发送自定义消息。示例代码如下:

  1. // 发送自定义消息
  2. PostMessage(WM_CUSTOM_MESSAGE, wParam, lParam);
复制代码


通过以上步骤,您就可以实现触发和处理自定义消息了。请注意, WM_CUSTOM_MESSAGE  是您为自定义消息定义的消息代码,可以是一个未被使用的整数值。

确保您将上述代码嵌入到正确的位置,并根据您的应用程序结构进行适当的调整。希望这些解释能够帮助您理解如何触发自定义消息。如有需要,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-3 07:42:45 | 显示全部楼层    本楼为最佳答案   
标题:自定义消息的触发代码

在 MFC 中,自定义消息的触发是通过发送消息来实现的。可以使用以下方式触发自定义消息:

1. 使用 SendMessage() 函数发送消息到窗口或控件:
  1. // 发送自定义消息 WM_MY_CUSTOM_MESSAGE 到窗口 hWnd
  2. SendMessage(hWnd, WM_MY_CUSTOM_MESSAGE, WPARAM_PARAM, LPARAM_PARAM);
复制代码
其中 WM_MY_CUSTOM_MESSAGE 是自定义消息的消息 ID,WPARAM_PARAMLPARAM_PARAM 分别是消息的 wParam 和 lParam 参数,根据需要进行设置。

2. 使用 PostMessage() 函数异步地发送消息到窗口或控件:
  1. // 异步发送自定义消息 WM_MY_CUSTOM_MESSAGE 到窗口 hWnd
  2. PostMessage(hWnd, WM_MY_CUSTOM_MESSAGE, WPARAM_PARAM, LPARAM_PARAM);
复制代码

3. 在窗口或控件类中重写消息处理函数来响应自定义消息:
  1. BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
  2.     ON_MESSAGE(WM_MY_CUSTOM_MESSAGE, OnMyCustomMessage)
  3. END_MESSAGE_MAP()
  4. // 自定义消息处理函数
  5. LRESULT CMyWnd::OnMyCustomMessage(WPARAM wParam, LPARAM lParam)
  6. {
  7.     // 处理自定义消息
  8.     return 0;
  9. }
复制代码

在代码中,需要自己定义和使用的自定义消息的触发代码应该是在合适的时机调用 SendMessage()PostMessage() 函数,并指定对应的消息 ID、wParam 和 lParam 参数。

请根据你的具体需求,在相关位置添加适当的代码以触发自定义消息。希望对你有所帮助!如果有任何问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 19:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表