美文网首页
自定义消息

自定义消息

作者: 碧波之心 | 来源:发表于2017-12-29 08:17 被阅读21次

    基于窗体应用程序使用自定义的消息

    1. 在头文件中定义消息编号
    // CustomMessageDlg.h : 头文件
    //
    
    #pragma once
    
    #define WM_MYMSG WM_USER + 1 // 自定义消息定义
    
    // CCustomMessageDlg 对话框
    class CCustomMessageDlg : public CDialogEx
    {
    

    WM_USER以下的消息都是系统消息,所以自定义消息时,ID要比WM_USE大;

    1. 添加函数声明(用于响应自定义消息):
    // 实现
    protected:
        HICON m_hIcon;
    
        // 生成的消息映射函数
        virtual BOOL OnInitDialog();
        afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
        afx_msg void OnPaint();
        afx_msg LRESULT OnMyMsgHandler(WPARAM, LPARAM); // 添加函数声明(用于响应自定义消息)
        afx_msg HCURSOR OnQueryDragIcon();
        DECLARE_MESSAGE_MAP()
    
    1. 在窗体实现中添加消息映射
    BEGIN_MESSAGE_MAP(CCustomMessageDlg, CDialogEx)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_BN_CLICKED(IDC_BUTTON1, &CCustomMessageDlg::OnBnClickedButton1)
        ON_MESSAGE(WM_MYMSG, OnMyMsgHandler) // 添加自定义消息的映射
    END_MESSAGE_MAP()
    
    1. 实现消息句柄
    // 实现自定义消息句柄
    LRESULT CCustomMessageDlg::OnMyMsgHandler(WPARAM, LPARAM)
    {
        // TODO:  在此添加控件通知处理程序代码
        MessageBox(_T("收到自定义消息"), _T("提示"), MB_OK);
        return 0;
    }
    
    1. 添加按钮,在按钮实现中发出一条自定义消息
    void CCustomMessageDlg::OnBnClickedButton1()
    {
        // TODO:  在此添加控件通知处理程序代码
        ::SendMessage(::AfxGetMainWnd()->m_hWnd, WM_MYMSG, 0, 0);
    }
    
    1. 生成项目,点击按钮弹出对话框


      image.png
    2. vs2013可以通过类向导添加自定义消息


      image.png

    相关文章

      网友评论

          本文标题:自定义消息

          本文链接:https://www.haomeiwen.com/subject/rqobgxtx.html