| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 716 人关注过本帖
标题:自定义dos消息响应 2
只看楼主 加入收藏
maomsx
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-10-19
收藏
 问题点数:0 回复次数:0 
自定义dos消息响应 2
#include "dispatch.hpp"

//    消息事件表搜索函数. 由于TEventHandler没有任何消息响应表,
//本函数不做任何动作,仅返回FALSE.
//    所有与消息事件表处理有关的对象类必须是TEventHandler的子类,
//且必须重载该函数.
BOOL TEventHandler::Find(TEventInfo & /*info*/)
{
     return FALSE;
}

//    从TEventInfo类型的消息事件数据中取出消息数据,并把它派遣
//给相应的响应函数.
//    Return True when SUCCESS, Else False.
int  TEventHandler::Dispatch(TEventInfo& info)
{
  if (Find(info)) //搜索消息的响应函数
     {
        //调用响应函数
        int r=(info.Entry->Dispatcher(*(info.Object),info.Entry->pmf,info.bSyntax,info.iPara));
        if(r) //响应函数有返回值,返回之
          return r;
        return TRUE; //响应函数返回值为零
     }
  return FALSE; //没有搜索到响应函数
}

//搜索消息事件表entries, 看其中是否含有有关info消息事件的项:
BOOL  TEventHandler::SearchEntries(TGenericTableEntry  *entries,
                                 TEventInfo &info)
{
     while ((entries)&&(entries->Dispatcher)&&(entries->pmf))
        {
          if ( (entries->NotifyCode==info.NotifyCode)
                    &&(entries->bSyntax==info.bSyntax) )
            {
                info.Entry = entries;
                return TRUE;
            }
          ++entries;
        }
     return FALSE;
}

//菜单消息派遣器
int DispatchMenuMessage(GENERIC &Object,int (GENERIC::*pmf)(int), BOOL,int para)
{
     return (Object.*pmf)(para);
}
搜索更多相关主题的帖子: dos 定义 TEventInfo info 函数 
2008-04-21 22:55
快速回复:自定义dos消息响应 2
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026773 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved