mfc如何给工具栏关联函数

要用mfc给对话框设置一个工具栏。现在IDR_TOOLBAR已经画好了……非常悲剧的发现工具栏居然是个bmp在OnCreate()中用if(!m_wndToolBar.C... 要用mfc给对话框设置一个工具栏。

现在IDR_TOOLBAR已经画好了……非常悲剧的发现工具栏居然是个bmp
在OnCreate() 中用
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_TOOLBAR)) {
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}
创建,不返回-1 但屏幕不显示工具栏。
用找到的一个奇葩长的代码可以显示工具栏 但都是灰色的。

现在工具栏上有三个按钮,名字分别为ID_a ID_b ID_c。 我在对话框中添加对ID_a的COMMOD的响应函数对应按钮依然是灰色的。
求问如何正确添加工具栏的响应函数 ……
展开
 我来答
bhtzu
2015-01-12 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:3904万
展开全部

Create和LoadToolBar函数,只是实现了类的创建和资源加载,之后还要实现显示和子类化。

  1. 建议在OnInitDialog里面做工具条初始化,而不是OnCreate里面。

  2. 工具条的Create要有初始位置(参数,有默认值0),如果没有,则需要在创建后通过MoveWindow之类的函数设定。

  3. 显示工具条,在你提问中两个函数调用之后,先设置m_wndToolBar.ShowWindow(SW_SHOW)的显示属性,再调用工具条必须使用的函数:

    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

  4. 注意工具条变量必须是类成员。

追问
“在对话框中添加对,ID_a的COMMOD的响应函数对应按钮依然是灰色的” 
她们已经能显示出来了,但是响应函数没效果没反应 QAQ

网上大家都在描述如何有个漂亮的工具栏……就没有人关心下响应函数。
很多都表示在工具栏资源那设就好了,可那里明明只能用一个放大镜对bmp文件点点点啊 QAQ

我在dialog上设的消息响应就华丽丽的完完全全被无视了!!
追答
应该是你没有正确的RepositionBars
没有具体的代码,无法具体分析原因,理论上,你的步骤是正确的,应该就是中间确实对工具条的绑定。
U200814342
2015-01-12 · TA获得超过290个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:157万
展开全部
暂时还没用过。。不行可以用菜单代替下先?
追问
作业要求 工具栏 QAQ
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式