//************************************************************************** void CBCGPRibbonBackstageViewItemForm::SetWaterMarkImage(UINT uiWaterMarkResID, COLORREF clrBase) { if (m_Watermark.GetImageWell() != NULL) { m_Watermark.Clear(); } if (m_WatermarkColorized.GetImageWell() != NULL) { m_WatermarkColorized.Clear(); } m_clrWatermarkBaseColor = clrBase; m_bImageMirror = FALSE; if (uiWaterMarkResID != 0) { m_Watermark.Load(uiWaterMarkResID); m_Watermark.SetSingleImage(); m_sizeWaterMark = m_Watermark.GetImageSize(); OnChangeVisualManager(); } else { m_sizeWaterMark = CSize(0, 0); } }
//******************************************************************************************************** void CBCGPDlgImpl::OnDWMCompositionChanged () { if (m_Dlg.GetSafeHwnd () == NULL) { return; } OnChangeVisualManager (); if (HasAeroMargins ()) { EnableAero (m_AeroMargins); } m_Dlg.RedrawWindow (NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN); }
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (LPMDIChildWnd::OnCreate(lpCreateStruct) == -1) return -1; // create a view to occupy the client area of the frame if (!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL)) { TRACE0("╢╢╫╗йсм╪й╖╟э\n"); return -1; } OnChangeVisualManager(0, 0); return 0; }
void CKofDlgImpl::EnableVisualManagerStyle( BOOL bEnable, BOOL bNCArea /*= FALSE*/, const CList<UINT,UINT>* plstNonSubclassedItems /*= NULL*/ ) { bEnable; m_bVisualManagerNCArea = bNCArea; plstNonSubclassedItems; if (m_Dlg.GetSafeHwnd () == NULL) { return; } CWnd* pWndChild = m_Dlg.GetWindow(GW_CHILD); while (pWndChild != NULL) { ASSERT_VALID (pWndChild); if (plstNonSubclassedItems != NULL && plstNonSubclassedItems->Find (pWndChild->GetDlgCtrlID ()) != NULL) { pWndChild = pWndChild->GetNextWindow (); continue; } if (bEnable && CWnd::FromHandlePermanent (pWndChild->GetSafeHwnd ()) == NULL) { #define MAX_CLASS_NAME 255 #define STATIC_CLASS _T("Static") #define BUTTON_CLASS _T("Button") #define EDIT_CLASS _T("Edit") #define COMBOBOX_CLASS _T("ComboBox") #define SCROLLBAR_CLASS _T("ScrollBar") TCHAR lpszClassName [MAX_CLASS_NAME + 1]; ::GetClassName (pWndChild->GetSafeHwnd (), lpszClassName, MAX_CLASS_NAME); CString strClass = lpszClassName; CWnd* pWndSubclassedCtrl = NULL; if (strClass == STATIC_CLASS) { pWndSubclassedCtrl = new CKofStatic; } else if (strClass == BUTTON_CLASS) { if ((pWndChild->GetStyle () & 0xF) == BS_GROUPBOX) { pWndSubclassedCtrl = new CKofGroup; } else { pWndSubclassedCtrl = new CKofMFCButton; } } else if (strClass == PROGRESS_CLASS) { pWndSubclassedCtrl = new CKofProgressCtrl; } else if (strClass == TRACKBAR_CLASS) { //pWndSubclassedCtrl = new CSliderCtrl; } else if (strClass == EDIT_CLASS) { pWndSubclassedCtrl = new CKofMFCEdit; } else if (strClass == COMBOBOX_CLASS) { pWndSubclassedCtrl = new CKofComboBox; } else if (strClass == SCROLLBAR_CLASS) { //pWndSubclassedCtrl = new CScrollBar; } else if (strClass == UPDOWN_CLASS) { pWndSubclassedCtrl = new CKofMFCSpinButtonCtrl; } else if (strClass == RICHEDIT_CLASS) { pWndSubclassedCtrl = new CKofRichEditCtrl; } if (pWndSubclassedCtrl != NULL) { m_arSubclassedCtrls.Add (pWndSubclassedCtrl); pWndSubclassedCtrl->SubclassWindow (pWndChild->GetSafeHwnd ()); } } pWndChild = pWndChild->GetNextWindow (); } OnChangeVisualManager (); if (m_Dlg.IsWindowVisible ()) { m_Dlg.RedrawWindow (NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN); } }
//************************************************************************** void CBCGPRibbonBackstageViewItemForm::OnAfterChangeRect (CDC* pDC) { SetLayoutReady(FALSE); CBCGPBaseRibbonElement::OnAfterChangeRect(pDC); if (m_rect.IsRectEmpty ()) { if (m_pWndForm->GetSafeHwnd () != NULL) { m_pWndForm->ShowWindow (SW_HIDE); } return; } BOOL bForceAdjustLocations = FALSE; if (m_pWndForm == NULL) { if ((m_pWndForm = OnCreateFormWnd()) == NULL) { return; } SetLayoutReady(FALSE); bForceAdjustLocations = TRUE; if (m_Watermark.GetImageWell() != NULL) { BOOL bMirror = FALSE; if (GetParentWnd()->GetExStyle () & WS_EX_LAYOUTRTL) { if (!m_bImageMirror) { m_bImageMirror = TRUE; bMirror = TRUE; } } else if (m_bImageMirror) { m_bImageMirror = FALSE; bMirror = TRUE; } if (bMirror) { m_Watermark.Mirror(); OnChangeVisualManager(); } } } CRect rectWindow = m_rect; CRect rectWatermark(0, 0, 0, 0); if (m_sizeWaterMark != CSize(0, 0)) { int xWatermark = max(rectWindow.Width(), m_sizeDlg.cx) - m_sizeWaterMark.cx; int yWatermark = max(rectWindow.Height(), m_sizeDlg.cy) - m_sizeWaterMark.cy; rectWatermark = CRect(CPoint(xWatermark, yWatermark), m_sizeWaterMark); } OnSetBackstageWatermarkRect(rectWatermark); m_pWndForm->SetWindowPos (NULL, rectWindow.left, rectWindow.top, rectWindow.Width (), rectWindow.Height () + 1, SWP_NOZORDER | SWP_NOACTIVATE); if (!m_pWndForm->IsWindowVisible()) { m_pWndForm->ShowWindow (SW_SHOWNOACTIVATE); } SetLayoutReady(); if (bForceAdjustLocations) { CBCGPRibbonPanel* pParentPanel = GetParentPanel(); if (pParentPanel != NULL && pParentPanel->GetParentMenuBar()->GetSafeHwnd() != NULL) { CRect rectPanel; pParentPanel->GetParentMenuBar()->GetClientRect(rectPanel); pParentPanel->GetParentMenuBar()->PostMessage(WM_SIZE, MAKEWPARAM(rectPanel.Width(), rectPanel.Height())); } } m_pWndForm->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN); }
//************************************************************************************* void CBCGPDlgImpl::EnableVisualManagerStyle (BOOL bEnable, BOOL bNCArea, const CList<UINT,UINT>* plstNonSubclassedItems) { m_bVisualManagerStyle = bEnable; m_bVisualManagerNCArea = bNCArea; if (m_Dlg.GetSafeHwnd () == NULL) { return; } if (m_lstNonSubclassedItems.IsEmpty() && plstNonSubclassedItems != NULL) { m_lstNonSubclassedItems.AddTail((CList<UINT,UINT>*)plstNonSubclassedItems); } CWnd* pWndChild = m_Dlg.GetWindow (GW_CHILD); while (pWndChild != NULL) { ASSERT_VALID (pWndChild); if (plstNonSubclassedItems != NULL && plstNonSubclassedItems->Find (pWndChild->GetDlgCtrlID ()) != NULL) { pWndChild = pWndChild->GetNextWindow (); continue; } if (m_lstNonSubclassedItems.Find (pWndChild->GetDlgCtrlID ()) != NULL) { pWndChild = pWndChild->GetNextWindow (); continue; } CBCGPButton* pButton = DYNAMIC_DOWNCAST(CBCGPButton, pWndChild); if (pButton != NULL) { ASSERT_VALID (pButton); pButton->m_bVisualManagerStyle = m_bVisualManagerStyle; } if (m_bVisualManagerStyle && CWnd::FromHandlePermanent (pWndChild->GetSafeHwnd ()) == NULL) { #define MAX_CLASS_NAME 255 #define STATIC_CLASS _T("Static") #define BUTTON_CLASS _T("Button") #define EDIT_CLASS _T("Edit") #define COMBOBOX_CLASS _T("ComboBox") #define SCROLLBAR_CLASS _T("ScrollBar") TCHAR lpszClassName [MAX_CLASS_NAME + 1]; ::GetClassName (pWndChild->GetSafeHwnd (), lpszClassName, MAX_CLASS_NAME); CString strClass = lpszClassName; CWnd* pWndSubclassedCtrl = NULL; if (strClass == STATIC_CLASS) { pWndSubclassedCtrl = new CBCGPStatic; } else if (strClass == BUTTON_CLASS) { if ((pWndChild->GetStyle () & 0xF) == BS_GROUPBOX) { pWndSubclassedCtrl = new CBCGPGroup; } else { pWndSubclassedCtrl = new CBCGPButton; } } else if (strClass == PROGRESS_CLASS) { pWndSubclassedCtrl = new CBCGPProgressCtrl; } else if (strClass == TRACKBAR_CLASS) { pWndSubclassedCtrl = new CBCGPSliderCtrl; } else if (strClass == EDIT_CLASS) { pWndSubclassedCtrl = new CBCGPEdit; } else if (strClass == COMBOBOX_CLASS) { pWndSubclassedCtrl = new CBCGPComboBox; } else if (strClass == SCROLLBAR_CLASS) { pWndSubclassedCtrl = new CBCGPScrollBar; } else if (strClass == UPDOWN_CLASS) { pWndSubclassedCtrl = new CBCGPSpinButtonCtrl; } if (pWndSubclassedCtrl != NULL) { m_arSubclassedCtrls.Add (pWndSubclassedCtrl); pWndSubclassedCtrl->SubclassWindow (pWndChild->GetSafeHwnd ()); } } pWndChild->SendMessage (BCGM_ONSETCONTROLVMMODE, (WPARAM) bEnable); pWndChild = pWndChild->GetNextWindow (); } OnChangeVisualManager (); if (m_Dlg.IsWindowVisible ()) { m_Dlg.RedrawWindow (NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN); } }