博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试—自定义消息处理
阅读量:4301 次
发布时间:2019-05-27

本文共 3630 字,大约阅读时间需要 12 分钟。

Mydialog.h//*********头文件

#pragma once

#ifndef Dialog

#define Dialog
// MyDialog 对话框
#include "Resource.h"
#include "afxwin.h"
#include "MyCEditView.h"
#include "MyEditNew.h"

#define MY_MESSAGE (WM_USER+1001)//用户自定义消息类型号

class MyDialog : public CDialogEx
{
    DECLARE_DYNAMIC(MyDialog)

public:

    MyDialog(CWnd* pParent = NULL);   // 标准构造函数
    virtual ~MyDialog();

// 对话框数据

    enum { IDD = IDD_DIALOG1 };

protected:

    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

    DECLARE_MESSAGE_MAP()

public:
    //afx_msg void OnBnClickedOk();
    CEdit tempEDit;
//    CEdit tempEDit2[4];
//    MyCEditView tempEDit3[5];
    afx_msg void OnBnClickedOk();
//    MyCEditView tempEdit2;
//    MyCEditView tempEDit2;
    MyEditNew tempedit4;
    afx_msg void OnBnClickedCancel();
    afx_msg void OnTempButtonClicked();
    afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
    virtual void OnOK();
    virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
    afx_msg void OnClickedButton1();
};
#endif

//**************************MyDialog.cpp

// MyDialog.cpp : 实现文件

//

#include "stdafx.h"

#include "MFCApplication1.h"
#include "MyDialog.h"
#include "afxdialogex.h"

// MyDialog 对话框

IMPLEMENT_DYNAMIC(MyDialog, CDialogEx)

MyDialog::MyDialog(CWnd* pParent /*=NULL*/)

    : CDialogEx(MyDialog::IDD, pParent)
{

}

MyDialog::~MyDialog()

{
}

void MyDialog::DoDataExchange(CDataExchange* pDX)

{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_EDIT1, tempEDit);

    //  DDX_Control(pDX, IDC_EDIT6, tempEDit3[3]);

    //  DDX_Control(pDX, IDC_EDIT2, tempEdit2);
    //  DDX_Control(pDX, IDC_EDIT2, tempEDit2);
    DDX_Control(pDX, IDC_EDIT2, tempedit4);
}

BEGIN_MESSAGE_MAP(MyDialog, CDialogEx)
    //ON_BN_CLICKED(IDOK, &MyDialog::OnBnClickedOk)
    ON_BN_CLICKED(IDOK, &MyDialog::OnBnClickedOk)
    ON_BN_CLICKED(IDCANCEL, &MyDialog::OnBnClickedCancel)
    ON_BN_CLICKED(12345, &MyDialog::OnTempButtonClicked)
    ON_MESSAGE(MY_MESSAGE, &MyDialog::OnMyMessage)
    ON_BN_CLICKED(IDC_BUTTON1, &MyDialog::OnClickedButton1)
END_MESSAGE_MAP()

// MyDialog 消息处理程序

//void MyDialog::OnBnClickedOk()
//{
//    // TODO:  在此添加控件通知处理程序代码
//    CDialogEx::OnOK();
//}

LRESULT MyDialog::OnMyMessage(WPARAM wParam, LPARAM lParam)

{
    CString cstr1;
    CString cstr2;
    cstr1.Format(_T("%d"), wParam);//整型转字符串
    cstr2.Format(_T("%d"), lParam);//整型转字符串
    MessageBox(cstr1+cstr2);
    return 0;
}
void MyDialog::OnBnClickedOk()
{
    // TODO:  在此添加控件通知处理程序代码
    MyDialog::OnOK();
    //CDialogEx::OnOK();
}

CButton tempButton;

void MyDialog::OnBnClickedCancel()
{
    // TODO:  在此添加控件通知处理程序代码
    CRect tempCrect;
    this->GetClientRect(tempCrect);

    int res = tempButton.Create(L"ID_Button", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(tempCrect.right / 2, 0, tempCrect.right / 2 + 100, 0 + 50), this, 12345);

    return;
    CDialogEx::OnCancel();
}
void MyDialog::OnTempButtonClicked()
{
    MessageBox(_T("准备........."));
}

 

void MyDialog::OnOK()

{
    // TODO:  在此添加专用代码和/或调用基类

    MessageBox(_T("到这了"));

    CDialogEx::OnOK();
}

LRESULT MyDialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)//message是消息类型,wParam是控件资源ID号,
{
    
    switch (message)
    {
    case WM_COMMAND:
    {
        WPARAM a = wParam;
                      
                       if (wParam == 12345)
                       {
                           MessageBox(_T("12345"));
                       }
                        if (wParam == IDOK)
                       {
                            MessageBox(_T("OK"));
                            return 0;
                       }
                       if (wParam == IDCANCEL)
                       {
                           MessageBox(_T("Cancel"));
                       }
                       break;
  //  CString str1 = (LPCTSTR)(wParam);
    //CString str2 = (LPCTSTR)(lParam);
    // MessageBox(_T("到这了"));
    //MyDialog::OnBnClickedOk();
                      
     
    }
    case MY_MESSAGE:
    {
     MessageBox(_T("自定义的一个消息"));
    return CDialogEx::WindowProc(message, wParam, lParam);
    }
    

    default:

        break;
    }

    // TODO:  在此添加专用代码和/或调用基类

    return CDialogEx::WindowProc(message, wParam, lParam);

}

void MyDialog::OnClickedButton1()
{
    // TODO:  在此添加控件通知处理程序代码
    ::SendMessage(this->m_hWnd, MY_MESSAGE, 9890, 3454);

}

 

 

转载地址:http://fcmws.baihongyu.com/

你可能感兴趣的文章
docker安装 rabbitMq
查看>>
git 常用命令 入门
查看>>
linux安装docker
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>