请大虾们指点?

happy 2000-02-28 07:15:00
在我的程序中有多个工具栏,每个按钮都设置成
TBSTYLE_CHECKGROUP样式,在所有的工具栏中
只有一个按钮是按下的,在初始化时用CheckButton设置
当选择了另一个工具栏时,必需把先前被按下的按钮恢复,

工具栏1 ------- 工具栏N

比如先前选择了工具栏1中的ID_TOOL_CIRCLE
现在按下工具栏2中的一个按钮,必需恢复工具栏1中的ID_TOOL_CIRCLE

在我的代码中我用的是:
tool_1.CheckButton(ID_TOOL_SELECT,TRUE);
tool_1.CheckButton(ID_TOOL_SELECT,FALSE);

我觉得这样不够合理,请问各位大侠,能否有其它方法?
(不要一个一个的检测)

能否取得已被按下的ID(不要一个一个的检测)???
...全文
123 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqy 2000-02-28
  • 打赏
  • 举报
回复
你可以加入一个标志变量如一个枚举类型的变量:
class CYouView:public CView
{
enum CUR_SELECT_TOOLS
{
toolNone,
toolFirst,
toolSecond,
//...
};
CUR_SELECT_TOOLS m_CurTool;

//...
};
然后用classWizard加入ID_TOOL_SELECT的UPDATE_COMMAND_UI和COMMAND处理函数.
在OnToolSelect(COMMAND)里,设置m_CurTool=toolFirst;
在OnUpdateToolSelect(UPDATE_COMMAND_UI)里加入pCmdUI->SetCheck(m_CurTool==toolFirst)即可,还有别忘了在构造函数里初始化m_CurTool
QJW 2000-02-28
  • 打赏
  • 举报
回复
可以使用ON_UPDATE_COMMAND_UI或ON_UPDATE_COMMAND_UI_RANGE。
kxy 2000-02-28
  • 打赏
  • 举报
回复
Group应该有一个GroupID的东西,对相同的一组,会自动处理
GroupID不能为零,delphi中是这样,
VC++我以前用过,估计类似。

16,472

社区成员

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

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

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