在这里特殊的是有一个自定义的类,然后要在CDialog对话框类中有一个自定义的消息,当这个消息发出时,要调用的是自己定义的类中的函数,而不是CDialog类中的函数了。这需要自己定义的类要继承CWnd才可以的。具体代码如下:
//Robot.cpp-------------------------------------------------------------------------------
//
#include "Robot.h"
LRESULT CSpeech::Recognisition(WPARAM wParam,LPARAM lParam)
{
MessageBox("Can send message now!");
return TRUE;
}
//Robot.h-------------------------------------------------------------------------------------------------------------
//
#ifndef ROBOT_H_
#define ROBOT_H_
#include "stdafx.h"
//#include <windows.h>
class CSpeech:public CWnd
{
public:
//method
//CSpeech();//constructor
// ~CSpeech();
LRESULT Recognisition(WPARAM wParam,LPARAM lParam);
private:
//member
};
#endif
上面就是自己定义的类。
下面的代码是要写在包含有对话框类文件中的
// tryClassDlg.cpp : 实现文件---------------------------------------------------------
//
BEGIN_MESSAGE_MAP(CtryClassDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_MESSAGE(MYMESSAGE,CSpeech::Recognisition)//只有这一句是自己加的
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
void CtryClassDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
SendMessage(MYMESSAGE);//发出消息
}
// tryClassDlg.h : 头文件--------------------------------------------------------------------------------
//
#pragma once
#define MYMESSAGE 10000//只要不冲突就可以了,不过,有一个宏的,但是一下想不起了
#include "Robot.h"
这样就可以了。:)