PreviewPane.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
- // PreviewPane.cpp : implementation file
- //
- // This file is a part of the XTREME TOOLKIT PRO MFC class library.
- // (c)1998-2008 Codejock Software, All Rights Reserved.
- //
- // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
- // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
- // CONSENT OF CODEJOCK SOFTWARE.
- //
- // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
- // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
- // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
- // SINGLE COMPUTER.
- //
- // CONTACT INFORMATION:
- // support@codejock.com
- // http://www.codejock.com
- //
- /////////////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "ResourceEditor.h"
- #include "PreviewPane.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CPreviewPane
- CPreviewPane::CPreviewPane()
- {
- m_pPreviewDialog = 0;
- }
- CPreviewPane::~CPreviewPane()
- {
- SAFE_DELETE(m_pPreviewDialog);
- }
- BEGIN_MESSAGE_MAP(CPreviewPane, CWnd)
- //{{AFX_MSG_MAP(CPreviewPane)
- ON_WM_CREATE()
- ON_WM_SIZE()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CPreviewPane message handlers
- class CPreviewPaneDialog : public CDialog
- {
- public:
- CPreviewPaneDialog(LPCDLGTEMPLATE pTemplate, CWnd* pParent)
- {
- CreateIndirect(pTemplate, pParent);
- }
- virtual void OnCancel()
- {
- }
- virtual void OnOK()
- {
- }
- };
- void CPreviewPane::ClearPreview()
- {
- if (m_pPreviewDialog)
- {
- m_pPreviewDialog->DestroyWindow();
- }
-
- SAFE_DELETE(m_pPreviewDialog);
- m_wndMenuBar.GetControls()->RemoveAll();
- m_wndMenuBar.MoveWindow(0, 0, 0, 0);
- }
- void CPreviewPane::ShowDialog(LPCDLGTEMPLATE pTemplate)
- {
- ClearPreview();
- CWnd* pWnd = GetFocus();
- m_pPreviewDialog = new CPreviewPaneDialog(pTemplate, this);
- if (!m_pPreviewDialog->m_hWnd)
- return;
- m_pPreviewDialog->ModifyStyle(WS_POPUP, WS_CHILD);
- m_pPreviewDialog->SetParent(this);
- CXTPWindowRect rc(m_pPreviewDialog);
- m_pPreviewDialog->MoveWindow(0, 0, rc.Width(), rc.Height());
- m_pPreviewDialog->ShowWindow(SW_SHOWNA);
- if (pWnd && IsWindow(pWnd->GetSafeHwnd())) pWnd->SetFocus();
- }
- void CPreviewPane::ShowMenu(CMenu* pMenu, XTP_RESOURCEMANAGER_LANGINFO* pLangInfo)
- {
- ClearPreview();
-
- m_wndMenuBar.LoadMenu(pMenu, TRUE);
- LOGFONT lfIcon;
- VERIFY(::SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lfIcon), &lfIcon, 0));
- lfIcon.lfCharSet = pLangInfo->nFontCharSet;
- m_wndMenuBar.GetPaintManager()->SetCommandBarsFontIndirect(&lfIcon);
- CXTPClientRect rc(this);
- CSize sz = m_wndMenuBar.CalcDockingLayout(rc.Width(), LM_STRETCH | LM_HORZDOCK | LM_HORZ | LM_COMMIT);
- m_wndMenuBar.MoveWindow(0, 0, sz.cx, sz.cy);
- m_wndMenuBar.Invalidate(FALSE);
- }
- int CPreviewPane::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
- CXTPPaintManager* pPaintManager = CXTPPaintManager::CreateTheme(xtpThemeOfficeXP);
- m_wndMenuBar.SetPaintManager(pPaintManager);
-
- m_wndMenuBar.CreateToolBar(WS_CHILD|WS_VISIBLE, this);
-
- return 0;
- }
- void CPreviewPane::OnSize(UINT nType, int cx, int cy)
- {
- CWnd::OnSize(nType, cx, cy);
-
- if (m_wndMenuBar.GetControls()->GetCount() > 0)
- {
- CSize sz = m_wndMenuBar.CalcDockingLayout(cx, LM_STRETCH | LM_HORZDOCK | LM_HORZ | LM_COMMIT);
- m_wndMenuBar.MoveWindow(0, 0, sz.cx, sz.cy);
- m_wndMenuBar.Invalidate(FALSE);
- }
- else
- {
- m_wndMenuBar.MoveWindow(0, 0, 0, 0);
- }
-
- }