导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

菜单的一个小问题

zjfhgdx 2009-08-14 01:36:52
写了一个SDI应用程序.
添加了一个菜单.
请问题这个菜单的命令处理程序应该写在哪里,
DOC类中还是VIEW中.还是两个都可以写?

我昨天写在VIEW中报错,写DOC中编译通过.
只好把VIEW中的一个变量拿到了DOC中,因为这个菜单的作用就是改变那个变量的值.
...全文
62 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jaeson83 2009-08-14
写在Frame或者View里面都可以。系统先响应frame里面的事件,然后响应view。可以看看孙鑫的教程,里面很详细地介绍了frame,view,doc之间的响应先后顺序。
回复
zjfhgdx 2009-08-14
THANKS
回复
allright1199 2009-08-14
响应函数顺序frame,doc,view,如果前面有了后面就不做了

Frame获取View成员
CDocument *pDoc =(((CFrameWnd*)AfxGetMainWnd())->GetActiveFrame())->GetActiveDocument();
CView *pView;
POSITION pos = pDoc->GetFirstViewPosition();
pView = pDoc->GetNextView(pos);

这是取激活文档的第一个view的,可以用于一般情况下,你可以根据自己的情况做修改
回复
zjfhgdx 2009-08-14
[Quote=引用 9 楼 tttyd 的回复:]
引用 7 楼 zjfhgdx 的回复:
引用 2 楼 tttyd 的回复:
1。 写了一个SDI应用程序.
    添加了一个菜单.
  请问题这个菜单的命令处理程序应该写在哪里,
  DOC类中还是VIEW中.还是两个都可以写?

都可以

2.  我昨天写在VIEW中报错,写DOC中编译通过.
    只好把VIEW中的一个变量拿到了DOC中,因为这个菜单的作用就是改变那个变量的值.
你是怎么添加菜单响应函数的?使用Ctrl+W向导为你添加消息响应函数


请问如果VIEW和DOC中都写了这个菜单的处理程序,那他是如何执行的?

先查找Doc类中有无响应函数,如有调用Doc的响应函数。如果没有,然后找找view类有无响应函数,如果调用View的响应函数
[/Quote]
也就是说他只执行一个函数对吗?如果,DOC中有,就不会再执行VIEW中的了?
回复
雪影 2009-08-14
[Quote=引用 7 楼 zjfhgdx 的回复:]
引用 2 楼 tttyd 的回复:
1。 写了一个SDI应用程序.
    添加了一个菜单.
  请问题这个菜单的命令处理程序应该写在哪里,
  DOC类中还是VIEW中.还是两个都可以写?

都可以

2.  我昨天写在VIEW中报错,写DOC中编译通过.
    只好把VIEW中的一个变量拿到了DOC中,因为这个菜单的作用就是改变那个变量的值.
你是怎么添加菜单响应函数的?使用Ctrl+W向导为你添加消息响应函数


请问如果VIEW和DOC中都写了这个菜单的处理程序,那他是如何执行的?
[/Quote]
先查找Doc类中有无响应函数,如有调用Doc的响应函数。如果没有,然后找找view类有无响应函数,如果调用View的响应函数
回复
yswlqj 2009-08-14
我一般会放在View里,应为大多数的操作在View里,如果设置在MainFrame里边,比如View里的一个变量变了,你需要在这On**里做处理,但是这个东西在MainFrame里,你要么就要把这个变量的指针传过去,要么就是弄一个全局变量,很麻烦,所以不如直接弄在View里,我没试过放在两个里会怎么样,这个……好像会有冲突吧。不太清楚。放哪里是无所谓的,关键是你要用来做什么,还有怎么处理方便
回复
zjfhgdx 2009-08-14
[Quote=引用 2 楼 tttyd 的回复:]
1。 写了一个SDI应用程序.
    添加了一个菜单.
  请问题这个菜单的命令处理程序应该写在哪里,
  DOC类中还是VIEW中.还是两个都可以写?

都可以

2.  我昨天写在VIEW中报错,写DOC中编译通过.
    只好把VIEW中的一个变量拿到了DOC中,因为这个菜单的作用就是改变那个变量的值.
你是怎么添加菜单响应函数的?使用Ctrl+W向导为你添加消息响应函数
[/Quote]

请问如果VIEW和DOC中都写了这个菜单的处理程序,那他是如何执行的?
回复
zjfhgdx 2009-08-14
请问把程序写在FRAME里面如何修改VIEW中的数据成员?
回复
leechard 2009-08-14
Document,View,Frame应该都可以,我在document和frame中试过,肯定可以的。view没有用过。
回复
janyming 2009-08-14
写FRANE里,你的菜单的PARENT是那个就写那个上面
回复
numen27 2009-08-14
写在Document,View,Frame里面都可以的吧,我习惯写在Frame里面。
回复
雪影 2009-08-14
1。 写了一个SDI应用程序.
添加了一个菜单.
请问题这个菜单的命令处理程序应该写在哪里,
DOC类中还是VIEW中.还是两个都可以写?

都可以

2. 我昨天写在VIEW中报错,写DOC中编译通过.
只好把VIEW中的一个变量拿到了DOC中,因为这个菜单的作用就是改变那个变量的值.
你是怎么添加菜单响应函数的?使用Ctrl+W向导为你添加消息响应函数
回复
njlengjiang 2009-08-14
帮你顶下,MFC初学者,目前都是在Dialog中进行开发的,爱莫能助.
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

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