【MFC】固定按钮工具栏

00. 目录

01. 案例概述

通过MFC向导创建的应用程序,默认情况下工具栏是可以改变位置的,也就是说可以在父窗体上移动,但本实例创建了不能够改变按钮位置的工具栏。效果如下图所示。

在这里插入图片描述

02. 开发环境

系统环境:Windows 10

开发环境:Visual Studio 2019

03. 关键技术

MFC向导创建的工具栏是使用CToolBar类的CreateEx方法实现的,该方法创建的工具栏其左侧有条导航线,而且可以对工具栏进行拖动,要创建固定按钮的工具栏需要使用CToolBar类的Create方法实现。

Create方法同CreateEx方法一样都是用来创建工具栏的。具体语法如下:

BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, UINT nID = AFX_IDW_TOOLBAR );

参数说明:
    pParentWnd:指定父窗体指针。
    dwStyle:指定工具栏样式。
    nID:设置工具栏资源ID。

04. 程序设计

(1)新建一个基于单文档视图结构的应用程序。

(2)向工程中添加ID属性为IDB_BITMAP1的工具栏位图。

(3)在CMainFrame类的OnCreate函数中创建工具栏,函数实现代码如下:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::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(IDR_MAINFRAME))
	{
		TRACE0("未能创建工具栏\n");
		return -1;      // 未能创建
	}

	if (!m_wndStatusBar.Create(this))
	{
		TRACE0("未能创建状态栏\n");
		return -1;      // 未能创建
	}
	m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));

	// TODO: 如果不需要可停靠工具栏,则删除这三行
	//是工具栏可以停靠
	//m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

	//是主框架可以被停靠
	//EnableDocking(CBRS_ALIGN_ANY);

	//控件条停靠到框架窗口
	//DockControlBar(&m_wndToolBar);

	return 0;
}

05. 秘笈心法

工具栏的创建方法

使用CToolBar类的CreateEx方法可以创建增强效果的工具栏,而Create方法可以快速的创建工具栏,使用Create方法只设置一个父窗体指针参数即可,但Create方法创建的工具栏样式比较简单。

06. 源码下载

下载:【MFC】固定按钮工具栏.rar

07. 附录

参考: 《Visual C++从入门到精通(项目案例版)》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值