在web script中模拟MFC的消息

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]

非常简单!!!!!!!!!!!!!!!!!!!!!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值