MFC中的消息(自定义):
.h中定义消息响应函数
afx void OnMyMessage();
。cpp中定义消息建立消息映射与实现消息函数体
#define WM_MYMESSAGE WM_USER+1
ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
void CMyClass::OnMyMessage()
{
//code here......
}
其实最终目标,就是WM_MYMESSAGE时,执行函数OnMyMessage()
script中如下:(假设消息响应函数名称始终为On+[message],对于几个消息只有一个响应函数的情况,稍加修改即可)
function PostMessage(message,arg,func)
//message:消息名称(字符串),如"WM_MYMESSAGE"
//arg:以,号分割的函数参数列表如:"1,str1,'const string',obj"
//func:响应函数名称,如"OnMyMessage",如果为空则默认为On+[message]
{
var flag=true;
var evalstr;
if(func)
{
if(typeof(func)!="undefined")
{
evalstr=func;
flag=false;
}
}
if(flag)
{
if(typeof("On"+message)=="undefined")
{
alert("消息"+message+"无响应函数!");
return;
}
}
evalstr="On"+message;
evalstr+="(";
if(arg) evalstr+=arg;
evalstr+=");";
eval(evalstr);
}
响应函数的编写:
function OnMyMessage(constIntArg,intArg,constString,stringArg,obj)
{
alert(""+constIntArg+intArg+conString+stringArg+typeof(obj));
}
调用的地方:
var str="string123456";
var nTemp=100;
var obj={};
PostMessage("MyMessage","1,nTemp,'constString',str,obj");
执行结果:
alert的字符串为:1100constStringstring123456[Object]
非常简单!!!!!!!!!!!!!!!!!!!!!!!!!!!!