VS2008 MDI 子窗体 CMDIChildWndEx 创建工具栏的问题

我用VS2008MFC向导生成了一个MDI工程,其中想在子窗体中加载工具栏,但是把父窗口中的CMFCToolBar的代码加入到子窗口中create,程序运行时却不显示工具... 我用VS2008 MFC 向导生成了一个MDI工程,其中想在子窗体中加载工具栏,但是把父窗口中的CMFCToolBar的代码加入到子窗口中create,程序运行时却不显示工具栏,但是点击“视图”-》“工具栏和停靠窗口”,对界面自定义一下后,就有了工具栏,说明工具栏已经成功加载,请问如何解决这个问题。
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIChildWndEx::OnCreate(lpCreateStruct) == -1)
return -1;

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(theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}

return 0;
}
补充一下,同样的做法在VS2005中就可行
回复 silvergingko,您的回答貌似不对,这三句话只是用于Docking的,VS2005中不使用也可以正确显示工具栏,而VS2008子窗体中即使用了这三句话,显示仍旧异常……
展开
 我来答
silvergingko
2010-03-04 · TA获得超过5945个赞
知道小有建树答主
回答量:688
采纳率:0%
帮助的人:868万
展开全部
LoadToolBar后漏了必要的三行代码调用:
m_wndToolBar.EnableDocking(CBRS_XXX);//工具栏启用停靠模式,可以为CBRS_ALIGN_ANY
EnableDocking(CBRS_XXX);//框架窗口启用停靠模式,可以为CBRS_ALIGN_ANY
DockControlBar(&m_ToolBar);//工具栏被停靠在框架窗口中

P.S.2005中也不能少了这3行
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式