急问关于消息处理

sospider 2001-07-19 11:29:52
CMainFrame::WindowProc()可以处理消息响应,如果我现在生成的程序是基于对话框的,那么就没有MainFrame了,请问如何像CMainFrame::WindowProc()一样处理一些消息呢?
...全文
202 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
sospider 2001-07-19
  • 打赏
  • 举报
回复
help,真的是都吃饭去了吗?
sospider 2001-07-19
  • 打赏
  • 举报
回复
sos
sospider 2001-07-19
  • 打赏
  • 举报
回复
BOOL CDetectorApp::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
switch (pMsg->message){
case MYWM_NOTIFYICON:
if(pMsg->lParam==WM_LBUTTONDBLCLK)
{
AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);
}
break;

case WM_SYSCOMMAND:
if(pMsg->wParam==SC_MINIMIZE)
{
AfxMessageBox("hi");
AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);
//return 0;
}
break;
}
return CWinApp::PreTranslateMessage(pMsg);
}

SC_MINIMIZE是系统消息,和映射没有关系吧?为什么拦截不到呢?

flytiger610 2001-07-19
  • 打赏
  • 举报
回复
PreTranslateMessage是个虚函数,重载它可以得到一切消息,你是怎么拦截的,把源码贴出来看看
sospider 2001-07-19
  • 打赏
  • 举报
回复
高手是不是都吃饭去了?
sospider 2001-07-19
  • 打赏
  • 举报
回复
这究竟是为什么?
sospider 2001-07-19
  • 打赏
  • 举报
回复
我在App中重载了:BOOL CDetectorApp::PreTranslateMessage(MSG* pMsg)

好像并没有起到作用,连极小化等消息都没拦截到
不解 2001-07-19
  • 打赏
  • 举报
回复
首先要确定要处理的消息是否只能通过框架的过程处理?实际上通过重载PreTransMessage()函数,基本上基于windows 的消息都能处理。
davidprg 2001-07-19
  • 打赏
  • 举报
回复
有啊。任何WINDOWS类都有。最低级的就是CWnd类了。再下去就用Prexxmessage,dispatchxxxmessage等API了。
sospider 2001-07-19
  • 打赏
  • 举报
回复
有点傻了,呵呵
sospider 2001-07-19
  • 打赏
  • 举报
回复
在对话框类里吗?App中没有吗?
davidprg 2001-07-19
  • 打赏
  • 举报
回复
用PreTransxxxxmessage,这是处理消息前的一个函数,重载它就可以。
Matrix_w 2001-07-19
  • 打赏
  • 举报
回复
在dialog类中重载 WindowProc OK
WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{

if (message==WM_SYSCOMMAND)
{
if (wParam==SC_MINIMIZE)
{
AfxMessageBox("hello");
return 1;
}
}
return CDialog::WindowProc(message, wParam, lParam);
sospider 2001-07-19
  • 打赏
  • 举报
回复
问题基本解决,谢谢各位,给分
sospider 2001-07-19
  • 打赏
  • 举报
回复
我也晕了,不知道是什么消息
flytiger610 2001-07-19
  • 打赏
  • 举报
回复
不会吧,那是什么消息呢?
sospider 2001-07-19
  • 打赏
  • 举报
回复
找到一些原因:
PreTranslateMessage确实起到了作用,但当我最小化的时候,他却不认为收到的是SC_MINIMIZE消息!
sospider 2001-07-19
  • 打赏
  • 举报
回复
是啊,我上边贴的代码就是这样写出来的,只不过是在App类中重载的pretranslatemessage(),这样难道不成吗?
flytiger610 2001-07-19
  • 打赏
  • 举报
回复
在classwizard里给你的类添加虚函数PreTranslateMessage,然后edit code,自己写就行了
sospider 2001-07-19
  • 打赏
  • 举报
回复
不太明白,classwizard里有?
返回TRUE也没有什么用的,发现很快就进行正常处理(最小化)说明没有正常返回TRUE;
加载更多回复(4)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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