WindowProc中的消息处理,快速转发到实现函数

经典的 windowproc消息处理函数中,使用的switch结束,进行消息转发。

例如:

//窗口消息函数一
LRESULT WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)  
{

    switch (message )
    {
    case WM_CLOSE:
    case WM_COMMAND:
    case WM_INITDIALOG:
        onMessage(hWnd,wParam,lParam);
        break;
    }
}

看了一下深入浅出MFC,自己也来写一个消息处理函数,方便自己测试,参照P owerbuilder中的消息封装,把消息和处理函数放到一个数组中。

 struct Event
{
    UINT msg;  //消息
    function fun;//函数指针
};

//窗口消息函数一
LRESULT WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    Event eMap[] ={{WM_COMMAND,onMessage},{WM_CREATE,onMessage},{WM_CLOSE,onMessage}};

    int iSize = SIZEOF_ARRAY(eMap);
    for(int i =0;i<iSize;i++)
    {
        if(uMsg == eMap[i].msg)
        {
            (*eMap[i].fun)(hWnd,wParam,lParam);

            return 1 ; //有消息
        }
    }
    return 0 ; 
}

 
LRESULT onMessage(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
    printf("handed Message\n");
    return 0 ; 
}

function 是一个函数指针,定义 :typedef LRESULT (*Function)(HWND,WPARAM,LPARAM);

窗口要用到哪些消息,就定义在消息数组中,简单好用,在这里写个备忘录。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
03-16
WinProc是一个在Windows下通用的进程管理工具,它除了具有一般进程管理工具的所有功能,还有一些自己的特色。下面是功能简介: 进程信息查看:可以查看进程的详细信息,包括线程数、模块数、占用内存、文件路径及进程相关的进程、线程详细信息等。 进程优先级设置:你可以主观上控制进程的CPU占用时间。 杀进程:WinProc提供多种杀进程方式。 1.在进程列表直接双击可以结束选定进程; 2.在进程列表右击选定进程,在弹出菜单选择“结束该进程之后所有进程”可以用来对付令人讨厌的一直跑出来的IE窗口; 3.将一个或者多个进程加入待结束进程列表,可是对多个进程同时进行操作,比如全部结束或者定时结束; 4.另外右击系统通知区的WinProc小图标,在弹出菜单的杀进程子菜单选择所要结束的进程,可以快速结束进程,全都是鼠标操作。 定时操作:在WinProc可以定时结束进程或者定时关机。 保存进程列表:以文本方式保存当前系统运行的进程列表,以备查看,比较平庸的一个功能。 进程黑名单:顾名思义,将进程加入进程黑名单后,该进程将无法被启动。至于这样做的意义何在,就看什么人怎么用了,呵呵。 锁定屏幕:当你离开电脑的时候可以将屏幕锁定,没有你的密码将无法解锁,但是别人可以在你的屏幕上给你留言,用用就知道了。 热键激活WinProc:可以按热键(F12)激活或者隐藏WinProc,而且需要说明的是该热键穿透力很强,你甚至可以在一些屏蔽了热键的程序激活WinProc。 热键杀进程:这个功能是为了应急而设计的。比如你在上班时间打游戏的时候,老板突然出现...如果你事先把一些比较敏感的程序(这里是游戏)加入待结束进程列表的话,不要急,只要按一下ScrLock,那尴尬的一幕将不复出现。 快速重启、注销、关机:如果你什么都喜欢快的话,这个功能或许能帮上忙。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白(litebai.com)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值