MFC消息分析
记得前一段时间,我刚接触软件破解和逆向这一行时,对于一些软件不知从何处跟踪按钮消息,试了好多方法,就是断不下来,在系统模块中经常转得晕头转向,而一无所获。
MFC程序是一种常见类型的程序,我静下心来,潜…
生活的天平本不平衡,只有通过努力改变其偏向。
记得前一段时间,我刚接触软件破解和逆向这一行时,对于一些软件不知从何处跟踪按钮消息,试了好多方法,就是断不下来,在系统模块中经常转得晕头转向,而一无所获。
MFC程序是一种常见类型的程序,我静下心来,潜…
作者:杜修杏
来源:VC知识库
一、准备工作
在开始编码之前,首先应该确定好,更准确的说应该是设计好按钮在各种状态下的外观。按钮控件的几中基本状态包括:
Normal状态,就是按钮一开始显示时的样子。
…
调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。
新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层,即有一个可弹出的菜单项,而此菜单项的弹出内容即为将要建立的弹出式菜单的内容。如右图,“可弹出项”下的菜单即为将要建立的弹出式菜单的内容。实际上,“可弹出项”这个名称在以后的操作中不会被用到,但VC++5不允许直接建立弹出式菜单,所以采用先建立“可弹出项”的方法。
要实现换肤,就是在恰当的时候处理恰当的消息。比如WM_NCPAINT消息:当程序的框架(Frame)需要重新绘制的时候,系统发送此消息给此程序。程序接收到此消息,如果没有被处理的话,则进行默认的处理(绘制边框、标题栏按钮等,XP下普通窗口的蓝色边框就是默认的处理)。因此,我们可以抓住这个时机来绘制皮肤。