在VS2010中使用Outlook工具栏

25 篇文章 0 订阅
14 篇文章 0 订阅

参考资料:微软MSDN、VS2010示例代码


一开始上段子总是能活跃气氛,等哪天我再打开自己的这篇博客,总是能够让自己傻傻的乐一下。

我一女同学,毕业去一大公司应聘,竞争很激烈,最后剩下她和一位女士.两个人都很优秀,面试官犹豫着叫她们两明天再来.临走之前她捡起了地上的碎纸屑,所以说细节决定成败!就是这么一个不经意的弯腰,被路过的CEO看到了.CEO透过衣领看到她的胸特别小,于是当机立断录取了另一位女士.醒醒吧!现实就是这样!不会有人想揍我吧?

大致结构

Bar

|--TabCtrl

        |--Pan

              |--Button


变量定义

CMFCOutlookBar m_OutlookBar;
CMFCOutlookBarPane m_OutlookPage;

实现代码

BOOL CMainFrame::CreateShortcutsBar ()
{
	CMFCOutlookBarTabCtrl::EnableAnimation ();

	const int nInitialWidth = 150;
	const CString strCaption = _T("Shortcuts");

	if (!m_OutlookBar.Create (strCaption, this, 
		CRect (0, 0, nInitialWidth, nInitialWidth), 
		ID_OUTLOOK_BAR, WS_CHILD | WS_VISIBLE | CBRS_LEFT))
	{
		TRACE0("Failed to create outlook bar\n");
		return FALSE;      // fail to create
	}

	CMFCOutlookBarTabCtrl* pOutlookBarTabCtrl = DYNAMIC_DOWNCAST (CMFCOutlookBarTabCtrl, m_OutlookBar.GetUnderlyingWindow ());
	if (pOutlookBarTabCtrl == NULL)
	{
		TRACE0("Cannot get outlook bar container\n");
		return FALSE;
	}

	CImageList images;
	images.Create (IDB_BMP_SHORTUTS, 32, 0, RGB (255, 0, 255));

	// Create first page:
	m_OutlookPage.Create (&m_OutlookBar, AFX_DEFAULT_TOOLBAR_STYLE, ID_OUTLOOK_PAN1);
	m_OutlookPage.SetOwner (this);
	m_OutlookPage.EnableTextLabels();
	m_OutlookPage.EnableDocking (CBRS_ALIGN_ANY);

	m_OutlookPage.AddButton (images.ExtractIcon (0), _T("实时"), ID_BTN_VIEW1);
	m_OutlookPage.AddButton (images.ExtractIcon (1), _T("历史"), ID_BTN_VIEW2);

	pOutlookBarTabCtrl->AddTab (&m_OutlookPage, _T("界面"), (UINT)-1, FALSE);

	return TRUE;
}

这段代码修改并截取自微软的示例程序OutlookMultiViews

但是这块代码跟VS2010的SDI中自带的Outlook工具栏的实现是不一样的。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
namespace OutLookBarDemo { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); #region 初始化 OutLookBar outlookBar.BorderStyle = BorderStyle.FixedSingle; outlookBar.Initialize(); IconPanel iconPanel1 = new IconPanel(); IconPanel iconPanel2 = new IconPanel(); IconPanel iconPanel3 = new IconPanel(); outlookBar.AddBand("工具条A", iconPanel1); outlookBar.AddBand("工具条B", iconPanel2); outlookBar.AddBand("工具条C", iconPanel3); //0 iconPanel1.AddIcon("信息查询", Image.FromFile(@"Image\1.ico"), new EventHandler(PanelEventA)); //1 iconPanel1.AddIcon("购物车管理", Image.FromFile(@"Image\2.ico"), new EventHandler(PanelEventA)); iconPanel1.AddIcon("信息查询", Image.FromFile(@"Image\1.ico"), new EventHandler(PanelEventA)); //1 iconPanel1.AddIcon("购物车管理", Image.FromFile(@"Image\2.ico"), new EventHandler(PanelEventA)); iconPanel1.AddIcon("信息查询", Image.FromFile(@"Image\1.ico"), new EventHandler(PanelEventA)); //1 iconPanel1.AddIcon("购物车管理", Image.FromFile(@"Image\2.ico"), new EventHandler(PanelEventA)); iconPanel1.AddIcon("信息查询", Image.FromFile(@"Image\1.ico"), new EventHandler(PanelEventA)); //1 iconPanel1.AddIcon("购物车管理", Image.FromFile(@"Image\2.ico"), new EventHandler(PanelEventA)); iconPanel1.AddIcon("信息查询", Image.FromFile(@"Image\1.ico"), new EventHandler(PanelEventA)); //1 iconPanel1.AddIcon("购物车管理", Image.FromFile(@"Image\2.ico"), new EventHandler(PanelEventA)); iconPanel1.AddIcon("信息查询", Image.FromFile(@"Image\1.ico"), new EventHandler(PanelEventA)); //1 iconPanel1.AddIcon("购物车管理", Image.FromFile(@"Image\2.ico"), new EventHandler(PanelEventA)); //2 iconPanel2.AddIcon("电子邮件", Image.FromFile(@"Image\3.ico"), new EventHandler(PanelEventB)); //3 iconPanel2.AddIcon("密码管理", Image.FromFile(@"Image\4.ico"), new EventHandler(PanelEventB)); //4 iconPanel3.AddIcon("时间设置", Image.FromFile(@"Image\4.ico"), new EventHandler(PanelEventC)); outlookBar.SelectBand(0); #endregion } public void PanelEventA(object sender, EventArgs e) { Control ctrl = (Control)sender; PanelIcon panelIcon = ctrl.Tag as PanelIcon; string clickInfo = string.Empty; switch (panelIcon.Index) { case 0: clickInfo = "信息查询"; break; case 1: clickInfo = "购物车管理"; break; } this.label1.Text = string.Format("您选择了 {0}", clickInfo); } public void PanelEventB(object sender, EventArgs e) { Control ctrl = (Control)sender; PanelIcon panelIcon = ctrl.Tag as PanelIcon; string clickInfo = string.Empty; switch (panelIcon.Index) { case 0: clickInfo = "电子邮件"; break; case 1: clickInfo = "密码管理"; break; } this.label1.Text = string.Format("您选择了 {0}", clickInfo); } public void PanelEventC(object sender, EventArgs e) { Control ctrl = (Control)sender; PanelIcon panelIcon = ctrl.Tag as PanelIcon; string clickInfo = string.Empty; switch (panelIcon.Index) { case 0: clickInfo = "时间设置"; break; } this.label1.Text = string.Format("您选择了 {0}", clickInfo); } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值