永发信息网

在对话框中添加工具栏按钮的问题。

答案:1  悬赏:10  手机版
解决时间 2021-01-09 20:07
  • 提问者网友:骑士
  • 2021-01-09 01:05
在对话框中添加工具栏按钮的问题。
最佳答案
  • 五星知识达人网友:舊物识亽
  • 2021-01-09 01:17
楼主是如何添加工具栏的呢?按理工具栏上的按钮都是有 ID 的。
如果是 MFC 的话,有超多的方法可以获取 ID ,当然所有这些方法,都需要我们提供按钮在工具栏上的位置索引。
譬如要知道第一个按钮的 ID :
extern CToolBar tb;
UINT id;
//1
id = tb.GetItemId(0);
//2
UINT style;
int image;
tb.GetButtonInfo(0, id, style, image);
//3
CToolBarCtrl& tbc = tb.GetToolBarCtrl();
TBBUTTON btn;
BOOL bRet = tbc.GetButton(0, &btn);
if (bRet) {
id = btn.idCommand;
}

与工具栏有关的很重要的一个数据结构是 TBBUTTON , MFC 很多函数都是围绕该结构进行包装的。如果是纯 WIN32 编程的话,也是围绕 TBBUTTON 写代码直接操纵该数据结构来改变工具栏按钮的外观和行为的。追问代码我贴上去了,如何关联,能不能用代码说说,谢谢!追答添加菜单项“修改”(假设ID 为1001)的命令响应函数得到(VS向导自动生成):
OnModify(...){...}

在这一句
m_toolbar.SetButtonText(1,"修改");
之后添加:
UINT id;
UINT style;
int image;
m_toolbar.GetButtonInfo(1, id, style, image);
m_toolbar.SetButtonInfo(1, 1001, style, image);

也可以:
CToolBarCtrl& tbc = m_toolbar.GetToolBarCtrl();
tbc.SetCmdID(1, 1001);

完成后,当点击工具栏 “修改”按钮,OnModify 函数在消息路由的指引下被调用。
还是那句话,无论 MFC 怎么包装,最终操作的就是两步:1 根据索引获得按钮的数据结构 TBBUTTON 2 填写该数据结构,重新写回到这个按钮中,使按钮的外观和行为生效。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯