今天调代码出现一个奇怪的情况,一个按钮要按两次才会起效,而且在debug模式下不会发生,只在Release模式出现。
关键的部分就是在App的Pretranslatemessage里面放了按键控制的代码
BOOL COpencvTest2App::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (true == gfxMc.m_pHandleCmd->TempKeyDown(pMsg))
{
return TRUE;
}
return CWinApp::PreTranslateMessage(pMsg);
}
正常的思维肯定是如果返回值不是true的话,就执行最下面那一句,继续把消息分发出去。
但是,好死不死我的TempKeyDown写得有问题,不是所有条件都有返回值。
在debug模式下运行没什么问题,就不去理会了。
但是Release模式却是造成了不可预料的后果,导致后续的消息响应有问题。
所以说,不能忽视每个细节。能处理尽量都处理