关于 PreTranslateMessage

jiereliyi 2009-12-24 04:49:11
为什么我重载了这个函数后,运行程序就很慢了,关闭应用程序都不起作用了?CPU使用率也很高,怎么解决。
...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiereliyi 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 reallyu 的回复:]
在程序最后要调用默认的PreTranslateMessage
类似这样
C/C++ code
BOOL CLEDNumerDlg::PreTranslateMessage(MSG* pMsg)
{// HWND hwnd;// hwnd = GetActiveWindow();if(pMsg->message==WM_KEYDOWN)
{if(pMsg->wParam== VK_UP)
{
MessageBox(L"key 3 pressed!");// 如果你不想让默认的PreTranslateMessage起作用的话return1;
}
}return CDialog::PreTranslateMessage(pMsg) ;
}
否则默认的都不执行了,你程序肯定不正常
[/Quote]
这样就可以了,正解
jiereliyi 2009-12-24
  • 打赏
  • 举报
回复
BOOL CHuituDlg::PreTranslateMessage(MSG* pMsg)
{
// HWND hwnd;
// hwnd = GetActiveWindow();
return 1;
}
这样和刚才一样,也管不了程序
91program 2009-12-24
  • 打赏
  • 举报
回复
应该是其它原因,这个函数用的多了,没出现过LZ所说的问题、

试试在其响应中不增加任何代码,看看效果如何?
Reallyu 2009-12-24
  • 打赏
  • 举报
回复
在程序最后要调用默认的PreTranslateMessage
类似这样

BOOL CLEDNumerDlg::PreTranslateMessage(MSG* pMsg)
{
// HWND hwnd;
// hwnd = GetActiveWindow();
if(pMsg->message ==WM_KEYDOWN)
{
if(pMsg->wParam == VK_UP)
{
MessageBox(L"key 3 pressed!");
// 如果你不想让默认的PreTranslateMessage起作用的话
return 1;
}
}
return CDialog::PreTranslateMessage(pMsg) ;
}
否则默认的都不执行了,你程序肯定不正常
jiereliyi 2009-12-24
  • 打赏
  • 举报
回复
BOOL CLEDNumerDlg::PreTranslateMessage(MSG* pMsg)
{
// HWND hwnd;
// hwnd = GetActiveWindow();
if(pMsg->message ==WM_KEYDOWN)
{
if(pMsg->wParam == VK_UP)
{
MessageBox(L"key 3 pressed!");
}
}
return 1;
}
这是我的函数
-小仙- 2009-12-24
  • 打赏
  • 举报
回复
你是不是吧处理数据的部分放在了 mssae的响应函数里面了

19,498

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧