//*****************************************************************************************
void CBCGPPropertyPage::OnNcPaint()
{
    if (!IsVisualManagerStyle ())
    {
        Default ();
    }
}
//*************************************************************************************
BOOL CBCGPDialog::OnInitDialog() 
{
	if (AfxGetMainWnd() == this)
	{
		globalData.m_bIsRTL = (GetExStyle() & WS_EX_LAYOUTRTL);
		CBCGPToolBarImages::EnableRTL(globalData.m_bIsRTL);
	}

	CDialog::OnInitDialog();
	
	m_Impl.m_bHasBorder = (GetStyle () & WS_BORDER) != 0;
	m_Impl.m_bHasCaption = (GetStyle() & WS_CAPTION) != 0;

	if (IsVisualManagerStyle ())
	{
		m_Impl.EnableVisualManagerStyle (TRUE, IsVisualManagerNCArea ());
	}

	if (m_Impl.HasAeroMargins ())
	{
		m_Impl.EnableAero (m_Impl.m_AeroMargins);
	}

	if (IsBackstageMode())
	{
		m_Impl.EnableBackstageMode();
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
//**************************************************************************
LRESULT CBCGPPropertyPage::OnChangeVisualManager (WPARAM, LPARAM)
{
    if (IsVisualManagerStyle ())
    {
        m_Impl.OnChangeVisualManager ();
    }

    return 0;
}
void CBCGPMessageBox::DrawText (CDC* pDC)
{
	CFont* pOldFont = pDC->SelectObject (&m_fntText);
	pDC->SetTextColor (IsVisualManagerStyle () ? globalData.clrBarText : globalData.clrWindowText);
	pDC->SetBkMode (TRANSPARENT);
	CRect rectTemp = m_rectText;
	pDC->DrawText (m_strMessageText, &rectTemp, m_dwDrawTextFlags | DT_NOCLIP);
	pDC->SelectObject (pOldFont);
}
//************************************************************************
void CBCGPFormView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	if (IsVisualManagerStyle ())
	{
		m_Impl.EnableVisualManagerStyle (TRUE);
	}
}
//****************************************************************************************
BOOL CBCGPPropertyPage::OnEraseBkgnd(CDC* pDC)
{
    BOOL bRes = TRUE;

    CRect rectClient;
    GetClientRect (rectClient);

    if (IsVisualManagerStyle ())
    {
#ifndef _BCGSUITE_
        if (IsBackstageMode())
        {
            CBCGPMemDC memDC(*pDC, this);
            CDC* pDCMem = &memDC.GetDC();

            CBCGPVisualManager::GetInstance ()->OnFillRibbonBackstageForm(pDCMem, this, rectClient);

            if (!m_rectBackstageWatermark.IsRectEmpty() && m_pBackstageWatermark != NULL && !globalData.IsHighContastMode())
            {
                ASSERT_VALID(m_pBackstageWatermark);
                m_pBackstageWatermark->DrawEx(pDCMem, m_rectBackstageWatermark, 0);
            }

            bRes = TRUE;
        }
        else
#endif
        {
            if (!CBCGPVisualManager::GetInstance ()->OnFillDialog (pDC, this, rectClient))
            {
                bRes = CPropertyPage::OnEraseBkgnd (pDC);
            }
        }
    }
    else if (m_bIsAeroWizardPage && !globalData.IsHighContastMode())
    {
        pDC->FillSolidRect(rectClient, RGB(255, 255, 255));
        bRes = TRUE;
    }
    else
    {
        bRes = CPropertyPage::OnEraseBkgnd(pDC);
    }

    if (!m_rectHeader.IsRectEmpty () && m_rectHeader.Height() > 1)
    {
        CBCGPPropertySheet* pParent = DYNAMIC_DOWNCAST(CBCGPPropertySheet, GetParent ());
        if (pParent != NULL)
        {
            pParent->OnDrawPageHeader (pDC, pParent->GetPageIndex (this), m_rectHeader);
        }
    }

    return bRes;
}
//****************************************************************************
LRESULT CBCGPDialog::OnSetText(WPARAM, LPARAM) 
{
	LRESULT	lRes = Default();

	if (lRes && IsVisualManagerStyle () && IsVisualManagerNCArea ())
	{
		RedrawWindow (NULL, NULL, RDW_FRAME | RDW_INVALIDATE | RDW_UPDATENOW);
	}

	return lRes;
}
HBRUSH CBCGPFormView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	if (IsVisualManagerStyle () || (IsWhiteBackground() && !globalData.IsHighContastMode()))
	{
		HBRUSH hbr = m_Impl.OnCtlColor (pDC, pWnd, nCtlColor);
		if (hbr != NULL)
		{
			return hbr;
		}
	}	

	return CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
}
//*****************************************************************************************
HBRUSH CBCGPPropertyPage::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    if (IsVisualManagerStyle () || m_bIsAeroWizardPage)
    {
        HBRUSH hbr = m_Impl.OnCtlColor (pDC, pWnd, nCtlColor);
        if (hbr != NULL)
        {
            return hbr;
        }
    }

    return CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
}
//********************************************************************************
void CBCGPImageEditDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

	if (IsVisualManagerStyle ())
	{
		dc.FillRect (m_rectPreviewFrame, &globalData.brBarFace);
	}
	else
	{
		dc.FillRect (m_rectPreviewFrame, &globalData.brBtnFace);
	}

	CBitmap* pbmOld = NULL;
	CDC dcMem;
		
	dcMem.CreateCompatibleDC (&dc);
	pbmOld = dcMem.SelectObject (m_pBitmap);

	CBCGPToolBarImages::TransparentBlt(dc.GetSafeHdc(), m_rectPreviewImage.left, m_rectPreviewImage.top,
				m_sizeImage.cx, m_sizeImage.cy, &dcMem,
				0, 0, RGB(192, 192, 192));

	if (IsVisualManagerStyle ())
	{
		dc.Draw3dRect (&m_rectPreviewFrame,
						globalData.clrBarHilite,
						globalData.clrBarShadow);
	}
	else
	{
		dc.Draw3dRect (&m_rectPreviewFrame,
						globalData.clrBtnHilite,
						globalData.clrBtnShadow);
	}

	dcMem.SelectObject(pbmOld);
	dcMem.DeleteDC();
}
//***************************************************************************************
HBRUSH CBCGPDialogBar::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	if (IsVisualManagerStyle ())
	{
		HBRUSH hbr = m_Impl.OnCtlColor (pDC, pWnd, nCtlColor);
		if (hbr != NULL)
		{
			return hbr;
		}
	}	

	return CBCGPDockingControlBar::OnCtlColor(pDC, pWnd, nCtlColor);
}
//***************************************************************************************
HBRUSH CBCGPDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	if (m_brBkgr.GetSafeHandle () != NULL || m_hBkgrBitmap != NULL ||
		IsVisualManagerStyle ())
	{
		HBRUSH hbr = m_Impl.OnCtlColor (pDC, pWnd, nCtlColor);
		if (hbr != NULL)
		{
			return hbr;
		}
	}	

	return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
//***************************************************************************************
void CBCGPDialogBar::OnEraseNCBackground (CDC* pDC, CRect rectBar)
{
#ifndef _BCGSUITE_
	if (IsVisualManagerStyle () &&
		CBCGPVisualManager::GetInstance ()->OnFillDialog (pDC, this, rectBar))
	{
		return;
	}

	CBCGPDockingControlBar::OnEraseNCBackground (pDC, rectBar);
#else
	CMFCVisualManager::GetInstance ()->OnFillBarBackground (pDC, this, rectBar, rectBar, 
		TRUE /* NC area */);
#endif
}
//************************************************************************
BOOL CBCGPFormView::OnEraseBkgnd(CDC* pDC) 
{
	CRect rectClient;
	GetClientRect (rectClient);

	if (IsWhiteBackground() && !globalData.IsHighContastMode())
	{
		pDC->FillSolidRect(rectClient, RGB(255, 255, 255));
		return TRUE;
	}

	if (IsVisualManagerStyle () &&
		CBCGPVisualManager::GetInstance ()->OnFillDialog (pDC, this, rectClient))
	{
		return TRUE;
	}

	return CFormView::OnEraseBkgnd(pDC);
}
Beispiel #15
0
BOOL CSetEditDlg::OnInitDialog()
{
	CBCGPDialog::OnInitDialog();

	InitLang();

	CBCGPFontComboBox::m_bDrawUsingFont = TRUE;
	m_editFont.Setup();
	m_editSize.SetItemHeight(-1, m_editSize.GetItemHeight(-1) + 3);
	m_editStyle.SetItemHeight(-1, m_editStyle.GetItemHeight(-1) + 3);	
	m_btnDefaultLink.SizeToContent();

	InitFont();

	if (!IsVisualManagerStyle())
	{
		EnableVisualManagerStyle(TRUE, TRUE);
	}

	GetDlgItem(IDCANCEL)->SetFocus();
	return FALSE;
}
//*****************************************************************************************
BOOL CBCGPDialogBar::OnEraseBkgnd(CDC* pDC) 
{
	CRect rectClient;
	GetClientRect (rectClient);

	if (IsVisualManagerStyle ())
	{
#ifndef _BCGSUITE_
		if (IsRebarPane())
		{
			CBCGPVisualManager::GetInstance ()->FillRebarPane(pDC, this, rectClient);
			return TRUE;
		}
#endif
		if (CBCGPVisualManager::GetInstance ()->OnFillDialog (pDC, this, rectClient))
		{
			return TRUE;
		}
	}

	pDC->FillRect (rectClient, &globalData.brBtnFace);
	return TRUE;
}
//*****************************************************************************************
LRESULT CBCGPDialogBar::HandleInitDialog(WPARAM wParam, LPARAM lParam)
{
	CBCGPBaseControlBar::HandleInitDialog(wParam, lParam);

#ifndef _AFX_NO_OCC_SUPPORT
	Default();  // allow default to initialize first (common dialogs/etc)

	// create OLE controls
	COccManager* pOccManager = afxOccManager;
	if ((pOccManager != NULL) && (m_pOccDialogInfo != NULL))
	{
		if (!pOccManager->CreateDlgControls(this, m_lpszBarTemplateName,
			m_pOccDialogInfo))
		{
			TRACE (_T("Warning: CreateDlgControls failed during dialog bar init.\n"));
			return FALSE;
		}
	}
#endif //!_AFX_NO_OCC_SUPPORT

	if (IsVisualManagerStyle ())
	{
		m_Impl.EnableVisualManagerStyle (TRUE);
		m_Impl.m_bTransparentStaticCtrls = FALSE;
	}

	if (m_bIsScrollingEnabled)
	{
		CRect rectClient;
		GetClientRect (rectClient);

		m_scrollSize = rectClient.Size ();
	}

	return TRUE;
}
//**************************************************************************************
BOOL CBCGPDialog::OnEraseBkgnd(CDC* pDC) 
{
	BOOL bRes = TRUE;

	if (m_brBkgr.GetSafeHandle () == NULL && m_hBkgrBitmap == NULL &&
		!IsVisualManagerStyle ())
	{
		bRes = CDialog::OnEraseBkgnd (pDC);
	}
	else
	{
		ASSERT_VALID (pDC);

		CRect rectClient;
		GetClientRect (rectClient);

		if (m_BkgrLocation != BACKGR_TILE || m_hBkgrBitmap == NULL)
		{
			if (m_brBkgr.GetSafeHandle () != NULL)
			{
				pDC->FillRect (rectClient, &m_brBkgr);
			}
			else if (IsVisualManagerStyle ())
			{
#ifndef _BCGSUITE_
				if (IsBackstageMode())
				{
					CBCGPMemDC memDC(*pDC, this);
					CDC* pDCMem = &memDC.GetDC();

					CBCGPVisualManager::GetInstance ()->OnFillRibbonBackstageForm(pDCMem, this, rectClient);

					if (!m_rectBackstageWatermark.IsRectEmpty() && !globalData.IsHighContastMode())
					{
						if (m_pBackstageWatermark != NULL)
						{
							ASSERT_VALID(m_pBackstageWatermark);
							m_pBackstageWatermark->DrawEx(pDCMem, m_rectBackstageWatermark, 0);
						}
						else
						{
							OnDrawBackstageWatermark(pDCMem, m_rectBackstageWatermark);
						}
					}

					bRes = TRUE;
				}
				else
#endif
				{
					if (IsWhiteBackground() && !globalData.IsHighContastMode() && !CBCGPVisualManager::GetInstance ()->IsDarkTheme())
					{
						pDC->FillSolidRect(rectClient, RGB(255, 255, 255));
					}
					else if (!CBCGPVisualManager::GetInstance ()->OnFillDialog (pDC, this, rectClient))
					{
						CDialog::OnEraseBkgnd (pDC);
					}
				}
			}
			else
			{
				CDialog::OnEraseBkgnd (pDC);
			}
		}

		if (m_hBkgrBitmap != NULL)
		{
			ASSERT (m_sizeBkgrBitmap != CSize (0, 0));

			if (m_BkgrLocation != BACKGR_TILE)
			{
				CPoint ptImage = rectClient.TopLeft ();

				switch (m_BkgrLocation)
				{
				case BACKGR_TOPLEFT:
					break;

				case BACKGR_TOPRIGHT:
					ptImage.x = rectClient.right - m_sizeBkgrBitmap.cx;
					break;

				case BACKGR_BOTTOMLEFT:
					ptImage.y = rectClient.bottom - m_sizeBkgrBitmap.cy;
					break;

				case BACKGR_BOTTOMRIGHT:
					ptImage.x = rectClient.right - m_sizeBkgrBitmap.cx;
					ptImage.y = rectClient.bottom - m_sizeBkgrBitmap.cy;
					break;
				}

				pDC->DrawState (ptImage, m_sizeBkgrBitmap, m_hBkgrBitmap, DSS_NORMAL);
			}
			else
			{
				// Tile background image:
				for (int x = rectClient.left; x < rectClient.Width (); x += m_sizeBkgrBitmap.cx)
				{
					for (int y = rectClient.top; y < rectClient.Height (); y += m_sizeBkgrBitmap.cy)
					{
						pDC->DrawState (CPoint (x, y), m_sizeBkgrBitmap, m_hBkgrBitmap, DSS_NORMAL);
					}
				}
			}
		}
	}

	m_Impl.DrawResizeBox(pDC);
	m_Impl.ClearAeroAreas (pDC);
	return bRes;
}
BOOL CBCGPRibbonBackstagePagePrint::OnInitDialog() 
{
	CBCGPDialog::OnInitDialog();

	UpdateLabels();

	if (CBCGPVisualManager::GetInstance()->IsDWMCaptionSupported())
	{
		m_wndZoomNum.m_bOnGlass = TRUE;
	}

	BOOL bInitialized = FALSE;

	CView* pView = NULL;
	CFrameWnd* pFrame = DYNAMIC_DOWNCAST(CFrameWnd, AfxGetApp ()->GetMainWnd ());
	if (pFrame != NULL)
	{
		if (pFrame->IsKindOf (RUNTIME_CLASS(CMDIFrameWnd)))
		{
			pFrame = ((CMDIFrameWnd*)pFrame)->GetActiveFrame ();
		}

		pView = pFrame->GetActiveView ();
		bInitialized = pView != NULL;
	}

	CRect rectWnd;

	CWnd* pWndLocation = GetDlgItem (IDC_BCGBARRES_PRINT_PREVIEW);
	ASSERT(pWndLocation);
	pWndLocation->GetWindowRect (rectWnd);
	ScreenToClient (rectWnd);
	pWndLocation->ShowWindow (SW_HIDE);
	pWndLocation->DestroyWindow ();

	if (bInitialized && pView->GetSafeHwnd () != NULL)
	{
		// Create the preview view object
		m_wndPreview = CreatePreviewWnd();
		if (m_wndPreview == NULL)
		{
			TRACE0("Error: Failed to create preview control.\n");
		}
		else if (!m_wndPreview->Create(WS_CHILD | WS_TABSTOP, CRect(0, 0, 0, 0), this, IDC_BCGBARRES_PRINT_PREVIEW))
		{
			TRACE0("Error: Failed to create preview control.\n");
			delete m_wndPreview;
			m_wndPreview = NULL;
		}
		else
		{
			m_wndPreview->m_bVisualManagerStyle = IsVisualManagerStyle();
			m_wndPreview->m_bBackstageMode = IsBackstageMode();

			m_wndPreview->SetNotifyPage (IDC_BCGBARRES_PRINT_PAGE_NUM);
			m_wndPreview->SetNotifyZoom (IDC_BCGBARRES_PRINT_ZOOM_NUM);

			InitializePrintInfo();

			if (!m_wndPreview->SetPrintView (pView, NULL))
			{
				TRACE0("Error: Failed to initialize preview control.\n");

				m_wndPreview->DestroyWindow ();
				delete m_wndPreview;
				m_wndPreview = NULL;
				bInitialized = FALSE;
			}
			else
			{
				m_wndPreview->ShowWindow (SW_SHOWNA);
				m_wndPreview->MoveWindow (rectWnd);
			}
		}
	}

	OnInitPrintControls();

	CBCGPStaticLayout* pLayout = (CBCGPStaticLayout*)GetLayout();
	ASSERT_VALID(pLayout);

	pLayout->AddAnchor(IDC_BCGBARRES_PRINT_SEPARATOR, CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeVert);
	if (m_wndPreview->GetSafeHwnd () != NULL)
	{
		pLayout->AddAnchor(m_wndPreview->GetSafeHwnd (), CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeBoth);
	}
	pLayout->AddAnchor(AFX_ID_PREVIEW_PREV, CBCGPStaticLayout::e_MoveTypeVert, CBCGPStaticLayout::e_SizeTypeNone);
	pLayout->AddAnchor(IDC_BCGBARRES_PRINT_PAGE_NUM, CBCGPStaticLayout::e_MoveTypeVert, CBCGPStaticLayout::e_SizeTypeNone);
	pLayout->AddAnchor(AFX_ID_PREVIEW_NEXT, CBCGPStaticLayout::e_MoveTypeVert, CBCGPStaticLayout::e_SizeTypeNone);
	pLayout->AddAnchor(IDC_BCGBARRES_PRINT_ZOOM_NUM, CBCGPStaticLayout::e_MoveTypeBoth, CBCGPStaticLayout::e_SizeTypeNone);
	pLayout->AddAnchor(IDC_BCGBARRES_PRINT_ZOOM_SLIDER, CBCGPStaticLayout::e_MoveTypeBoth, CBCGPStaticLayout::e_SizeTypeNone);

	PRINTDLG* dlgPrint = GetPrintDlg();
	if (!bInitialized || dlgPrint == NULL || dlgPrint->hDevMode == NULL || dlgPrint->hDevNames == NULL)
	{
		m_btnPrint.EnableWindow (FALSE);
		SetCopies(m_nCopies, FALSE);
	}

	OnPageChanged ();
	OnZoomChanged ();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
//****************************************************************************************
BOOL CBCGPPropertyPage::OnInitDialog()
{
    BOOL bRes = CPropertyPage::OnInitDialog();

    if (IsVisualManagerStyle ())
    {
        m_Impl.EnableVisualManagerStyle (TRUE);
    }

    if (IsBackstageMode())
    {
        m_Impl.EnableBackstageMode();
    }

    CBCGPPropertySheet* pParent = DYNAMIC_DOWNCAST(CBCGPPropertySheet, GetParent ());
    if (pParent == NULL)
    {
        return bRes;
    }

    m_bIsAeroWizardPage = pParent->GetAeroHeight() > 0;

    if (m_bIsAeroWizardPage && globalData.IsHighContastMode())
    {
        m_Impl.EnableVisualManagerStyle (TRUE);
    }

    m_Impl.m_bIsWhiteBackground = m_bIsAeroWizardPage && !globalData.IsHighContastMode();

    int nHeaderHeight = pParent->GetHeaderHeight ();
    if (m_bIsAeroWizardPage && pParent->m_bDrawHeaderOnAeroCaption)
    {
        nHeaderHeight = 0;
    }

    if (GetLayout () != NULL)
    {
        CRect rectClient;
        GetClientRect (rectClient);

        if (pParent->GetLook() != CBCGPPropertySheet::PropSheetLook_Tabs)
        {
            rectClient.top += nHeaderHeight;
        }

        GetLayout ()->SetMinSize (rectClient.Size ());
    }

    if (nHeaderHeight <= 1)
    {
        return bRes;
    }

    CWnd* pWndChild = GetWindow (GW_CHILD);
    while (pWndChild != NULL)
    {
        CRect rectChild;
        pWndChild->GetWindowRect (rectChild);
        ScreenToClient (rectChild);

        rectChild.OffsetRect (0, nHeaderHeight);

        pWndChild->SetWindowPos (NULL, rectChild.left, rectChild.top,
                                 -1, -1, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);

        pWndChild = pWndChild->GetNextWindow ();
    }

    return bRes;
}