本人使用C++编程已有很多年,遇到过也解决过太多太多的问题,虽不敢说是编程高手,但也有很多编程经验。由于自己太懒,没有做笔记的习惯,导致很多时候还得花大把时间解决以前解决过的问题。今天终于决定把自己这些年编程的经验以及遇到的一些问题及解决办法记录下来。今天先把今天刚解决的问题写出来,以后再慢慢把想到的东西补上。
相信有童鞋做过简单的资源管理器,显示计算机中的文件和文件夹(以下统称文件),并提供对文件的删除和重命名等功能(为什么一定要提到删除和重命名呢,便于下面的举例罢了)。如果为删除命令添加快捷键,即Delete键,在重命名时,您选择一部分文字,想把它删除再重新键入,按下Delete键,你会很惊讶地发现,文件被删除了,而不是文字被删除,如下图:
显然,MFC把Delete当成快捷键处理了,那么为什么呢,我们可以重写视图类和框架类的PreTranslateMessage函数,用AfxMessageBox来显示不同的信息,看是谁先处理或者是谁处理了这个按键消息,结果发现视图类没有处理这一消息,是由框架类处理的,这就好办了,框架类继承自CFrameWnd类,还好,微软还算厚道,提供了MF