★请教如何在程序中用代码使工具栏上的按钮变成灰白或者CHECKED!!!!★

jemmylau 2002-05-25 02:13:50
谢谢
...全文
70 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fang_jb 2002-05-25
  • 打赏
  • 举报
回复
加上UPDATE_COMMAND_UI事件的处理,
里面的参数CCmdUI* pCmdUI有两个成员函数,
一个是Enable设置灰白还是正常状态,
一个是SetCheck设置按下还是正常状态。

try it
xiaoxieyu 2002-05-25
  • 打赏
  • 举报
回复
jemmylau(枕头) ,好像很多CToolbar的派生类都有你说得那些什么
checked之类的功能,找几个参考一下就可以了!
HeavenStar 2002-05-25
  • 打赏
  • 举报
回复
顺便自己看mfc例子,CMNCTRL1吧!
HeavenStar 2002-05-25
  • 打赏
  • 举报
回复
1.只要两者用同一ID即可
2。看来先要CToolBar::GetToolBarCtrl(),CToolBarCtrl::。。。。自己看吧
jemmylau 2002-05-25
  • 打赏
  • 举报
回复
我是那样做的,可是如何通过菜单执行的代码来控制toolbar呢
SetButtonInfo这个函数我使用过了,只能改变按钮的信息,例如按钮类型等,却没办法改变按钮的状态。
急!
HeavenStar 2002-05-25
  • 打赏
  • 举报
回复
1。如果和MenuItem一一对应,改变菜单选择即可
2。也可先得到CToolBar对象,然后CToolBar::SetButtonInfo()
jemmylau 2002-05-25
  • 打赏
  • 举报
回复
太夸张了吧??
这样也行,我估计判断是哪幅图也没那么容易!
这可不是解决的方法
还有,就算是用你灰色的图的时候,那按钮是否也可以被按下去呢?
star_chen 2002-05-25
  • 打赏
  • 举报
回复
好像是自己画两副图啊,一副是灰得,然后在你得条件下替换两副图,然后点击得时候查看是哪种状态,路过是灰得,就不作任何处理啊
jemmylau 2002-05-25
  • 打赏
  • 举报
回复
有人吗?
jemmylau 2002-05-25
  • 打赏
  • 举报
回复
高手请解决这个问题,很多人都不知道怎么处理
jemmylau 2002-05-25
  • 打赏
  • 举报
回复
你说的不错,我还有一种方法解决你所说的问题,而且比你说的方法可能要简单点:
CMenu* MainMenu=GetMenu();
MainMenu->CheckMenuItem(ID_XXXX,MF_CHECKED);
MainMenu->EnableMenuItem(ID_XXXX,1);
也可以实现

可是我想知道的是如何使“工具栏”中的按钮变成灰白或者CHECKED。
请高手指点,谢谢!
不过还是满谢谢你的!
boris_hz 2002-05-25
  • 打赏
  • 举报
回复
在菜单项的属性(Menu Item Properties)中,当菜单有子菜单时,选中Pop_up项;
当菜单项为灰色时,选中Grayed项,打开ClassWizard,在把事件处理器连接到这个ID时,选Message框中的UPDATE_COMMAND_UI项(UI表示用户接口),建立新方法。这个方法中传递参数为CCmdUI对象的指针pCmdUI。CCmdUI类的方法有:
ContinueRouting 告诉命令路由机制继续沿句柄路由当前信息
Enable 打开或关闭这个命令的用户界面选项
SetCheck 设置这个命令的用户界面项的选择状态
SetRadio 像SetCheck成员函数一样,但是在单选组上进行
SetText 设置这个命令的用户界面文本
因为要使这个选项变灰,因此调用CCmdUI对象的Enable()方法,向这个方法传递值false,这样就可使这个选项变灰而不可用。只要在这个选项的更新事件处理器中放置代码,使在实际显示这个选项之前先检查是否应该显示这个菜单选项。
当菜单为可选项时,选中Checked项。与使选项变灰相似,也连接到Checked菜单的UPDATE_COMMAND_UI消息。在它的处理函数中,用Enable()打开它,再用参数1(参数0去掉复选标记)调用CCmdUI对象的SetCheck方法:
pCmdUI->Enable(true);
pCmdUI->SetCheck(1);

16,550

社区成员

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

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

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