请帮助我这个VC菜鸟?

arfu 2000-02-21 03:35:00
各位大侠:

请帮忙!

 我用vc 的AppWizard 的六步法建立了一个(MDI)应用程序框架(aaa),
 我打算在视图窗口单击鼠标,弹出对话框。

为什么在classWizard的Message Maps项中要以CaaaView为基类
映射WM_LBUTTONDOWN鼠标消息,而不在CDialog或CDocument类中
映射该消息。

以CMainFrame为基类映射该消息可以吗?
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengdun 2000-02-21
  • 打赏
  • 举报
回复
在CDocument或CMainFrame中响应消息都是可以的,只要在ClassWizard的Message Maps标签中的Class Name下拉框中选择你想处理该消息的类名即可。
在CDialog中是不行的,因为你的对话框是在响应了鼠标单击事件后而弹出的,此时该对话框尚不是一个有效的窗口,无法接受消息映射。
dengdun 2000-02-21
  • 打赏
  • 举报
回复
在CDocument或CMainFrame中响应消息都是可以的,只要在ClassWizard的Message Maps标签中的Class Name下拉框中选择你想处理该消息的类名即可。
在CDialog中是不行的,因为你的对话框是在响应了鼠标单击事件后而弹出的,此时该对话框尚不是一个有效的窗口,无法接受消息映射。
dengdun 2000-02-21
  • 打赏
  • 举报
回复
在CDocument或CMainFrame中响应消息都是可以的,只要在ClassWizard的Message Maps标签中的Class Name下拉框中选择你想处理该消息的类名即可。
在CDialog中是不行的,因为你的对话框是在响应了鼠标单击事件后而弹出的,此时该对话框尚不是一个有效的窗口,无法接受消息映射。
dengdun 2000-02-21
  • 打赏
  • 举报
回复
在CDocument或CMainFrame中响应消息都是可以的,只要在ClassWizard的Message Maps标签中的Class Name下拉框中选择你想处理该消息的类名即可。
在CDialog中是不行的,因为你的对话框是在响应了鼠标单击事件后而弹出的,此时该对话框尚不是一个有效的窗口,无法接受消息映射。
Gray_Bit 2000-02-21
  • 打赏
  • 举报
回复
在MFC中,主View是首先得到这个Message的,一般是默认在那个Wnd点击了,就让哪个Wnd处理.
如一定要在CDocument类中映射该消息,也可以。
同样,以CMainFrame为基类映射该消息也可以.
在CDialog中映射该消息,就不合适了,如果你的Dialog是模式的.
929 2000-02-21
  • 打赏
  • 举报
回复
在VC中采用的是文档与视图的应用程序框架处理方式。一般直接与用户打交道的是视图,也就是VIEW,因此,在程序处理上,一般都是在视图中处理一些与用户界面操作有关的操作。而在文档中处理与数据处理有关的操作。在框架窗口用CLASSWIZARD可以映射左键消息,但一般不这样处理。因为VC对于它的消息传递是有一个顺序的,具体怎样一个顺序,看看书吧,我也说不完全。

16,472

社区成员

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

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

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