void CUndoBar::DoUndo () { CUndoButton* pUndoButton = GetParentButton (); ASSERT_VALID (pUndoButton); pUndoButton->m_nSelNum = m_wndList.GetSelCount () + 1; CMDIChildWnd* pChildFrame = ((CMDIFrameWnd*)GetTopLevelFrame())->MDIGetActive(); if (pChildFrame) { CView* pView = pChildFrame->GetActiveView(); if (pView && pView->IsKindOf(RUNTIME_CLASS(CBCGPVisualStudioGUIDemoView))) { ((CBCGPVisualStudioGUIDemoView*)pView)->DoUndo(pUndoButton); } else { ASSERT(FALSE); } } else { ASSERT(FALSE); } GetParent ()->PostMessage (WM_CLOSE); }
int CUndoBar::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMFCPopupMenuBar::OnCreate(lpCreateStruct) == -1) return -1; CFont* pMenuFont = (CFont*) &CMFCMenuBar::GetMenuFont(); // Set label height: CClientDC dc(this); CFont* pOldFont = dc.SelectObject(pMenuFont); TEXTMETRIC tm; dc.GetTextMetrics(&tm); m_nLabelHeight = tm.tmHeight + 2; dc.SelectObject(pOldFont); CRect rectDummy(0, 0, 0, 0); m_wndList.Create(WS_VISIBLE | WS_CHILD | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | WS_VSCROLL | LBS_MULTIPLESEL, rectDummy, this, ID_LIST); m_wndList.ModifyStyleEx(0, WS_EX_CLIENTEDGE); m_wndList.SetFont(pMenuFont); CUndoButton* pUndoButton = GetParentButton(); ASSERT_VALID(pUndoButton); for (POSITION pos = pUndoButton->m_lstActions.GetHeadPosition(); pos != NULL;) { m_wndList.AddString(pUndoButton->m_lstActions.GetNext(pos)); } return 0; }
void CUndoBar::DoUndo() { CUndoButton* pUndoButton = GetParentButton(); ASSERT_VALID(pUndoButton); pUndoButton->m_nSelNum = m_wndList.GetSelCount() + 1; CMDIChildWnd* pChildFrame = ((CMDIFrameWndEx*)GetTopLevelFrame())->MDIGetActive(); if (pChildFrame) { CEditView* pView = DYNAMIC_DOWNCAST(CEditView, pChildFrame->GetActiveView()); if (pView != NULL) { //pView->OnEditUndo(); TODO } else { ASSERT(FALSE); } } else { ASSERT(FALSE); } GetParent()->PostMessage(WM_CLOSE); }
//************************************************************************************* CBCGPControlBar* CColorPopup::CreateTearOffBar (CFrameWnd* pWndMain, UINT uiID, LPCTSTR lpszName) { ASSERT_VALID (pWndMain); ASSERT (lpszName != NULL); ASSERT (uiID != 0); CBCGPColorMenuButton* pColorMenuButton = DYNAMIC_DOWNCAST (CBCGPColorMenuButton, GetParentButton ()); if (pColorMenuButton == NULL) { ASSERT (FALSE); return NULL; } CBCGPColorBar* pColorBar = new CBCGPColorBar (m_wndColorBar, pColorMenuButton->m_nID); if (!pColorBar->Create (pWndMain, dwDefaultToolbarStyle, uiID)) { TRACE0 ("Failed to create a new toolbar!\n"); delete pColorBar; return NULL; } pColorBar->SetWindowText (lpszName); pColorBar->SetBarStyle (pColorBar->GetBarStyle () | CBRS_TOOLTIPS | CBRS_FLYBY); pColorBar->EnableDocking (CBRS_ALIGN_ANY); return pColorBar; }