首页 > 其他分享 >MFC 自定义消息

MFC 自定义消息

时间:2024-02-05 17:23:11浏览次数:25  
标签:WPARAM wParam XiaoMing MFC 自定义 WM CMFCCustomMsgDlg CUSTOM 消息

▲ Demo 示例

新建基于对话框的 Demo程序。

头文件:

// 自定义数据类型,用来测试消息数据传递
typedef struct tagStudent
{
    CString Name;
    int Age;
}Student_t;




// Dlg header

public:
    afx_msg void OnBnClickedButtonCustomMsg();
    afx_msg LRESULT OnCustomMessage(WPARAM wParam, LPARAM lParam);   //  必须这种签名
private:
    Student_t m_XiaoMing;

自定小的处理函数签名必须符合这样的参数:afx_msg LRESULT OnCustomMessage(WPARAM wParam, LPARAM lParam);

构造函数测试数据初始化:

CMFCCustomMsgDlg::CMFCCustomMsgDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_MFCCUSTOMMSG_DIALOG, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    m_XiaoMing.Name = _T("小明");  // 测试数据初始化
    m_XiaoMing.Age = 12;
}

消息:

#define WM_CUSTOM_MSG (WM_USER + 1)

BEGIN_MESSAGE_MAP(CMFCCustomMsgDlg, CDialogEx)	
    ON_MESSAGE(WM_CUSTOM_MSG, &CMFCCustomMsgDlg::OnCustomMessage)
END_MESSAGE_MAP()

消息处理函数定义:

LRESULT CMFCCustomMsgDlg::OnCustomMessage(WPARAM wParam, LPARAM lParam)
{
    Student_t* stuInfo = (Student_t*)wParam;
    CString infoText;
    infoText.Format(_T("姓名:%s\n年龄:%d\n额外信息:%ld\n"), stuInfo->Name, stuInfo->Age, lParam);
    MessageBox(infoText);

    return LRESULT();
}

按钮响应消息:

void CMFCCustomMsgDlg::OnBnClickedButtonCustomMsg()
{
    //SendMessage(WM_CUSTOM_MSG, (WPARAM)(&m_XiaoMing), 100); // 等处理完才返回
    PostMessage(WM_CUSTOM_MSG, (WPARAM)(&m_XiaoMing), 100); // 不等处理完就返回
}

标签:WPARAM,wParam,XiaoMing,MFC,自定义,WM,CMFCCustomMsgDlg,CUSTOM,消息
From: https://www.cnblogs.com/huvjie/p/18008493

相关文章

  • 怎么用ETL工具实现MQ消息同步
    怎么用ETL工具实现MQ消息同步随着企业业务的不断扩张和数据量的不断增加,消息队列(MQ)已经成为了很多企业进行异步消息传递和数据同步的首选方案。而在一些特定场景下,需要将MQ中的消息同步到数据仓库或其他存储系统中,以便进行更深入的数据分析和挖掘。这时候,ETL工具可以成为实现MQ消息......
  • 怎么用ETL工具实现MQ消息同步
    怎么用ETL工具实现MQ消息同步随着企业业务的不断扩张和数据量的不断增加,消息队列(MQ)已经成为了很多企业进行异步消息传递和数据同步的首选方案。而在一些特定场景下,需要将MQ中的消息同步到数据仓库或其他存储系统中,以便进行更深入的数据分析和挖掘。这时候,ETL工具可以成为实现MQ消......
  • WebSocket 协议 message, ping , Pong, 消息
    以前一直不明白,WebSocket 已经有了message回调函数,可以接收任何的消息,按理说,ping和pong也只是  message 众多消息类型中的两个消息特里,直到看到 <<WebSocket协议 >>的定义,才明白,为什么了 一、数据帧(DataFraming)WebSocket协议中,数据是通过数据帧来传递的,协议......
  • APP在申请敏感权限时,应同步说明权限申请的使用目的,包括但不限于申请权限的名称、服务
    一、概述华为APP应用市场反馈问题:(目前是华为审核特有的问题)APP在申请敏感权限时,应同步说明权限申请的使用目的,包括但不限于申请权限的名称、服务的具体功能、用途;告知方式不限于弹窗、蒙层、浮窗、或者自定义操作系统权限弹框等验证了小米、vivo、oppo、应用宝,只......
  • mysql-自定义函数
    0、结构delimiter$$--修改语句结束符,mysql默认的结束符是分号,为了在函数体中避免遇到分号就结束,重新定义结束符createfunction函数名(形参)returns返回值类型begin//函数体return返回值数据;end$$delimiter;--将语句结束符修改回来1、变......
  • ICD.exe 是一种用于创建和自定义 Windows 映像的工具,可以在离线或在线环境中运行
    Microsoft提供了WindowsImagingandConfigurationDesigner(ICD)工具,用于创建和自定义Windows映像。ICD工具可以帮助管理员轻松地创建、编辑和管理Windows映像,并提供了许多功能和选项来满足不同的需求。FFU(FullFlashUpdate)映像是一种完整的映像文件,可以在设备上......
  • Linux进程间通信_共享内存和消息队列
    本文对SystemV标准的共享内存和消息队列这两种进程间通信方式进行讨论,涉及原理、系统调用接口以及相关的内核数据结构,并给出相关示例代码。SystemV共享内存基本原理进程间通信必须要让不同的进程看到同一份内存资源,因为进程具有独立性,所以这份内存资源是操作系统提供的,接口是由......
  • 【JAVA】Java 使用 XPath表达式定位节点读取自定义XML方法
    *加载配置文件节点*@paramattributeValue节点属性值*@paramareaCode节点属性值*/publicstaticMap<String,String>getConfigXml(StringattributeValue,StringareaCode){StringfilePath="config.xml";Map<St......
  • [word] word自定义编号格式怎么设置
    在Word文档的编辑中,经常会给段落添加编号,但是在编号的使用过程中我们会遇到很多问题,今天给大家分享word自定义编号格式怎么设置,希望能帮到您! 1.如何自定义编号格式?点击文件左上角的【开始】菜单按钮—进入【段落】-选择【编号】-选择【定义新编号格式】,在【编号样式】中选择一个合......
  • 【DM】自定义存储函数(返回字符在字符串中所在位置的下标字符串)
    一、使用while语法--输入:原字符串,查找的字符,分割字符--输出:所在位置下标集合(用输入的分割字符分割)CREATEORREPLACEFUNCTIONdF_strPosition(strInputINVARCHAR(100),strFindinputINVARCHAR(2),strSplitINVARCHAR(2))RETURNVARCHAR(128)ASstrVal......