|
|
1
2
添加一个 在更新命令界面上 工具栏中每个控件的处理程序。像这样:
|
|
|
2
1
就像我在回答Zdan的回答时说的,我找到了一个方法。就这样重写ctoolbar中的onupdatecmdui函数
bdisableifnohndler标志负责告诉工具栏在未找到处理程序时禁用按钮,因此我只强制它为false。 但现在我又遇到了另一个问题。工具栏看起来很精细,但当我按下按钮时它不会发送命令。我不知道为什么,因为如果我从菜单中访问相同的命令,它就可以正常工作。我会试着看看这是否相关。 谢谢你的帮助。 更新:发现我的问题。基本上,问题是我的命令处理程序在myframe::pretranslatemessage中(在做了这个问题答案中建议的类似操作之后: How to redirect MFC messages to another object? )但是这些命令不是通过这个函数发送的(尽管当从菜单中访问时,它们确实发送了)。不过,它们是通过myframe::oncommand发送的,所以我刚将代码从pretranslatemessage更改为oncommand,现在一切正常。我不太了解MFC,不知道为什么会这样,但现在一切似乎都正常了,所以谢谢大家的帮助。 |