求一个MFC新增工具栏代码

我写了这样一段代码:MainFrm.hCToolBarm_wndDrawToolBar;MainFrm.cppOnCreate:if(!m_wndDrawToolBar.... 我写了这样一段代码:

MainFrm.h
CToolBar m_wndDrawToolBar;

MainFrm.cpp

OnCreate:

if (!m_wndDrawToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndDrawToolBar.LoadToolBar(IDR_DRAWTOOL))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}

int nCount = m_wndDrawToolBar.GetToolBarCtrl().GetButtonCount();
for( int i = 0; i < nCount; i++ )
{
UINT nStyle = m_wndDrawToolBar.GetButtonStyle(i);
if( i <= 1 )
nStyle |= TBSTYLE_CHECK;
else
nStyle |= TBBS_CHECKGROUP;

m_wndDrawToolBar.SetButtonStyle( i, nStyle );
}

m_wndDrawToolBar.EnableDocking( CBRS_ALIGN_LEFT );
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar( &m_wndDrawToolBar);

结果出错!
请给出一个正确的示范
回一楼:
修改了,还是出错。

回三楼:
我使用的是VS2008编译的,老是出一个断言错误。
展开
 我来答
stone_dongdong
2009-07-10 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1021万
展开全部
将倒数第三句话修改为:
m_wndDrawToolBar.EnableDocking( CBRS_ALIGN_ANY );
因为你在create时候使用的 CBRS_TOP ,这儿又是缘了 CBRS_ALIGN_LEFT

出现断言对话框的时候,你点继续。然后程序会进入断言点,看看在那个函数里面。或者查看调用堆栈,看看是你程序的那个地方有问题。
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
tgq201
2009-07-11 · 超过13用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:0
展开全部
代码似乎没问题
您所说的结果出错是什么情况,是点运行无反应吗?

!m_wndDrawToolBar.LoadToolBar(IDR_DRAWTOOL))中
IDR_DRAWTOOL是否有这个工具条资源呢

我这里VC6.0++可以编译通过,能运行。

可以在里面F9设置段点,一步步调试跟踪看看,在那里执行了意外的流程。

2009-07-11 我的电脑上VS2008编译也能通过,断言错误是提示什么。来点文字详细描述或是图片什么的看看,或许不是因为添加这些代码引起的指针无效呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-07-10
展开全部
等例子
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式