【UI-BCG】在菜单上点击时显示或隐藏 对应窗口

//在菜单上点击时显示或隐藏 对应窗口


#pragma once
#include "FlowBar.h"
#include "WorkSpaceBar2.h"
#include "OutputBar.h"
#include "DockableStartPage.h"
#include "PropertiesViewBar.h"

class CMainFrame : public CBCGPMDIFrameWnd
{
	DECLARE_DYNAMIC(CMainFrame)
public:
	CMainFrame();
public:
	virtual ~CMainFrame();
protected:  // control bar embedded members
	CWorkSpaceBar2			m_wndKnowledge;   //知识库视图
	CBCGPToolBarImages	m_UserImages;
public:
	CWorkSpaceBar2* GetKnowledgeView(){return &m_wndKnowledge;}
	// Generated message map functions
protected:
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnViewKnowledge();
	afx_msg void OnUpdateViewKnowledge(CCmdUI *pCmdUI);
};

BEGIN_MESSAGE_MAP(CMainFrame, CBCGPMDIFrameWnd)
	ON_WM_CREATE()
	ON_COMMAND(ID_VIEW_KNOWLEDGE, &CMainFrame::OnViewKnowledge)//在菜单上点击时显示或隐藏 对应窗口
	ON_UPDATE_COMMAND_UI(ID_VIEW_KNOWLEDGE, &CMainFrame::OnUpdateViewKnowledge)
END_MESSAGE_MAP()

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CBCGPMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	

	CBCGPToolBar::EnableQuickCustomization ();

	//属性窗口创建
	if (!m_wndPropGrid.Create (_T("属性"), this, CRect (0, 0, 200, 200),
		TRUE, 
		ID_VIEW_PROPERTIES,
		WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT  | CBRS_FLOAT_MULTI))
	{
		TRACE0("Failed to create Properties Bar\n");
		return FALSE;		// fail to create
	}
	//设置图片
	m_wndPropGrid.SetIcon (imagesWorkspace.ExtractIcon (2), FALSE);

	// TODO: Delete these three lines if you don't want the toolbar to be dockable
	//加入布局
	DockControlBar(&m_wndPropGrid);
	//设置相对
	m_wndKnowledge.DockToWindow(&m_wndPropGrid,CBRS_BOTTOM);
	EnableControlBarMenu (	
		TRUE,				// Enable
		ID_VIEW_CUSTOMIZE, 	// Customize command ID
		_T("自定义..."),	// Customize command text
		ID_VIEW_TOOLBARS,	// Menu items with this ID will be replaced by toolbars menu
		FALSE,
		FALSE,
		TRUE);
	OnAppLook (m_nAppLook);
	return 0;
}


void CMainFrame::OnViewKnowledge()
{
	ASSERT(ID_VIEW_STATUS_BAR == AFX_IDW_STATUS_BAR);
	ASSERT(ID_VIEW_TOOLBAR == AFX_IDW_TOOLBAR);
	ASSERT(ID_VIEW_REBAR == AFX_IDW_REBAR);

	CControlBar* pBar = (CControlBar*)&m_wndKnowledge;
	if (pBar != NULL)
	{
		CFrameWnd::ShowControlBar(pBar, (pBar->GetStyle() & WS_VISIBLE) == 0, FALSE);
		//return TRUE;
	}

	// TODO: 在此添加命令处理程序代码
}


void CMainFrame::OnUpdateViewKnowledge(CCmdUI *pCmdUI)
{
	ASSERT(ID_VIEW_STATUS_BAR == AFX_IDW_STATUS_BAR);
	ASSERT(ID_VIEW_TOOLBAR == AFX_IDW_TOOLBAR);
	ASSERT(ID_VIEW_REBAR == AFX_IDW_REBAR);
	ENSURE_ARG(pCmdUI != NULL);

	CControlBar* pBar = (CControlBar*)&m_wndKnowledge;
	if (pBar != NULL)
	{
		pCmdUI->SetCheck((pBar->GetStyle() & WS_VISIBLE) != 0);
		return;
	}
	pCmdUI->ContinueRouting();
	// TODO: 在此添加命令更新用户界面处理程序代码
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值