MDI 工具栏按钮如何变灰,不可用

Carolwhy 2007-12-12 11:00:47
MDI设计中,如何让程序一运行就让工具栏的部分按钮不可使用。试了SDI的方法,好像不可使。如下:
CToolBarCtrl *btn=(CToolBarCtrl*)&pMain->m_wndToolBar.GetToolBarCtrl();
int nNet=btn->EnableButton(ID_XXX,false);
nNet返回是1,为何按钮还是可以使用呢???高手请教。
...全文
313 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinrn815 2010-01-13
  • 打赏
  • 举报
回复
上面的问题怎么解决的啊,我遇到了同样的问题??自己解决了,怎么不留下你的办法呢??
mapper 2007-12-12
  • 打赏
  • 举报
回复
没有相应的消息处理函数,增加对ID_XXX的消息处理就可以了
afx_msg void OnXXX()
void CMIDDoc::OnXXX()
{
}
smaltdd 2007-12-12
  • 打赏
  • 举报
回复
不好意思,打错两个字
不是实践 而是事件
smaltdd 2007-12-12
  • 打赏
  • 举报
回复
不知道你的toolbar和menu是否对应关联

如果对应的话,可以通过menu添加实践响应
有两个响应实践
1、COMMAND \\实现菜单具体的操作
2、UPDATE_COMMAND_UI \\用来对菜单自身进行更新,这里可以对菜单可操作性进行控制
Carolwhy 2007-12-12
  • 打赏
  • 举报
回复
我在MainFrm是这样写的CToolBarCtrl *btn=(CToolBarCtrl*)& m_wndToolBar.GetToolBarCtrl();
intnNet=btn->EnableButton(ID_XXX,false);
在XXView.cpp中才是CToolBarCtrl *btn=(CToolBarCtrl*)&pMain->m_wndToolBar.GetToolBarCtrl();
int nNet=btn->EnableButton(ID_XXX,false);
有什么指针没取道呢?
还有是不是有办法可用disable对应的菜单项也可以,但是MDI 有两个菜单,应该如何写呢?有没有对应的代码,高手帮忙,已经搞一天了。非常感谢

smaltdd 2007-12-12
  • 打赏
  • 举报
回复
建议你debug一下,看看是不是那个指针没取到

Carolwhy 2007-12-12
  • 打赏
  • 举报
回复
我在MainFrm的Create运行不行,在XXView.cpp中的OnInitialUpdate中也不行,应该放在那里呢
smaltdd 2007-12-12
  • 打赏
  • 举报
回复
CToolBarCtrl *btn=(CToolBarCtrl*)&pMain-> m_wndToolBar.GetToolBarCtrl();
int nNet=btn-> EnableButton(ID_XXX,false);
你的这段代码在那里运行的?

toolbar一般都建议在mFrm这个类进行操作。
Carolwhy 2007-12-12
  • 打赏
  • 举报
回复
thanks smaltdd 问题解决了

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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