void COXTabViewContainer::UpdateScrollState() { if(g_bUpdatingScrollState || g_bUpdatingScrollInfo) { return; } g_bUpdatingScrollState=TRUE; CWnd* pWnd=GetActivePage(); if(pWnd==NULL || !pWnd->IsWindowVisible()) { g_bUpdatingScrollState=FALSE; return; } PAGEINFO& pi=m_arrPages[GetActivePageIndex()]; BOOL bHasScrollHorz=((pWnd->GetStyle() & WS_HSCROLL)==WS_HSCROLL); BOOL bHasScrollVert=((pWnd->GetStyle() & WS_VSCROLL)==WS_VSCROLL); if(bHasScrollHorz || bHasScrollVert) { if(bHasScrollHorz) { pi.bHasScrollHorz=bHasScrollHorz; pWnd->ModifyStyle(WS_HSCROLL,NULL,SWP_DRAWFRAME); pWnd->ShowScrollBar(SB_HORZ,FALSE); } if(bHasScrollVert) { pi.bHasScrollVert=bHasScrollVert; pWnd->ModifyStyle(WS_VSCROLL,NULL,SWP_DRAWFRAME); pWnd->ShowScrollBar(SB_VERT,FALSE); } } pWnd->ModifyStyle(WS_VISIBLE,NULL); pWnd->ShowScrollBar(SB_HORZ,TRUE); pWnd->ModifyStyle(NULL,WS_HSCROLL,SWP_DRAWFRAME); pWnd->ShowScrollBar(SB_VERT,TRUE); pWnd->ModifyStyle(NULL,WS_VSCROLL,SWP_DRAWFRAME); pi.GetScrollInfo(pWnd,TRUE); if(pi.bHasScrollHorz) { if(pi.scrlInfoHorz.nMax==0 || pi.scrlInfoHorz.nPage==0 || pi.scrlInfoHorz.nMax<(int)pi.scrlInfoHorz.nPage) { pi.bHasScrollHorz=FALSE; } } else { if(pi.scrlInfoHorz.nMax>0 && pi.scrlInfoHorz.nPage>0 && pi.scrlInfoHorz.nMax>=(int)pi.scrlInfoHorz.nPage) { pi.bHasScrollHorz=TRUE; } } pi.GetScrollInfo(pWnd,FALSE); if(pi.bHasScrollVert) { if(pi.scrlInfoVert.nMax==0 || pi.scrlInfoVert.nPage==0 || pi.scrlInfoVert.nMax<(int)pi.scrlInfoVert.nPage) { pi.bHasScrollVert=FALSE; } } else { if(pi.scrlInfoVert.nMax>0 && pi.scrlInfoVert.nPage>0 && pi.scrlInfoVert.nMax>=(int)pi.scrlInfoVert.nPage) { pi.bHasScrollVert=TRUE; } } pWnd->ShowScrollBar(SB_HORZ,FALSE); pWnd->ModifyStyle(WS_HSCROLL,NULL,SWP_DRAWFRAME); pWnd->ShowScrollBar(SB_VERT,FALSE); pWnd->ModifyStyle(WS_VSCROLL,NULL,SWP_DRAWFRAME); pWnd->ModifyStyle(NULL,WS_VISIBLE); DWORD dwStyle=GetScrollStyle(); dwStyle=(pi.bHasScrollHorz ? WS_HSCROLL : 0) | (pi.bHasScrollVert ? WS_VSCROLL : 0); SetScrollStyle(dwStyle,FALSE); g_bUpdatingScrollState=FALSE; }
LRESULT CGlobalPrefsSheet::OnKickIdle(WPARAM, LPARAM) { GetActivePage ()->SendMessage (WM_KICKIDLE, 0, 0); return 0; } // end of CGlobalPrefsSheet::OnKickIdle
void COXTabViewContainer::UpdateScrollInfo() { if(g_bUpdatingScrollInfo || g_bUpdatingScrollState) { return; } g_bUpdatingScrollInfo=TRUE; CWnd* pWnd=GetActivePage(); if(pWnd==NULL || !pWnd->IsWindowVisible()) { g_bUpdatingScrollInfo=FALSE; return; } PAGEINFO& pi=m_arrPages[GetActivePageIndex()]; if(pi.bHasScrollHorz) { pWnd->ModifyStyle(WS_VISIBLE,NULL); pWnd->ShowScrollBar(SB_HORZ,TRUE); pWnd->ModifyStyle(NULL,WS_HSCROLL,SWP_DRAWFRAME); pi.GetScrollInfo(pWnd,TRUE); ASSERT(::IsWindow(m_scrlBarHorz.GetSafeHwnd())); m_scrlBarHorz.SetScrollInfo(&pi.scrlInfoHorz); pWnd->ShowScrollBar(SB_HORZ,FALSE); pWnd->ModifyStyle(WS_HSCROLL,NULL,SWP_DRAWFRAME); pWnd->ModifyStyle(NULL,WS_VISIBLE); } else { pi.scrlInfoHorz.cbSize=sizeof(SCROLLINFO); pWnd->GetScrollInfo(SB_HORZ,&pi.scrlInfoHorz); } if(pi.bHasScrollVert) { pWnd->ModifyStyle(WS_VISIBLE,NULL); pWnd->ShowScrollBar(SB_VERT,TRUE); pWnd->ModifyStyle(NULL,WS_VSCROLL,SWP_DRAWFRAME); pi.GetScrollInfo(pWnd,FALSE); ASSERT(::IsWindow(m_scrlBarVert.GetSafeHwnd())); m_scrlBarVert.SetScrollInfo(&pi.scrlInfoVert); pWnd->ShowScrollBar(SB_VERT,FALSE); pWnd->ModifyStyle(WS_VSCROLL,NULL,SWP_DRAWFRAME); pWnd->ModifyStyle(NULL,WS_VISIBLE); } else { pi.scrlInfoVert.cbSize=sizeof(SCROLLINFO); pWnd->GetScrollInfo(SB_VERT,&pi.scrlInfoVert); } g_bUpdatingScrollInfo=FALSE; }
LRESULT CPluginWizardSheet::OnKickIdle(WPARAM, LPARAM) { GetActivePage ()->SendMessage (WM_KICKIDLE, 0, 0); return 0; } // end of CPluginWizardSheet::OnKickIdle
BOOL CResizableSheetEx::ArrangeLayoutCallback(LAYOUTINFO &layout) const { if (layout.nCallbackID != m_nCallbackID) // we only added 1 callback return CResizableLayout::ArrangeLayoutCallback(layout); // set layout info for active page layout.hWnd = (HWND)::SendMessage(GetSafeHwnd(), PSM_GETCURRENTPAGEHWND, 0, 0); if (!::IsWindow(layout.hWnd)) return FALSE; // set margins if (IsWizard()) // wizard mode { // use pre-calculated margins layout.marginTopLeft = m_sizePageTL; layout.marginBottomRight = m_sizePageBR; } else if (IsWizard97()) // wizard 97 { // use pre-calculated margins layout.marginTopLeft = m_sizePageTL; layout.marginBottomRight = m_sizePageBR; if (!(GetActivePage()->m_psp.dwFlags & PSP_HIDEHEADER)) { // add header vertical offset CRect rectLine, rectSheet; GetTotalClientRect(&rectSheet); GetAnchorPosition(ID_WIZLINEHDR, rectSheet, rectLine); layout.marginTopLeft.cy = rectLine.bottom; } } else // tab mode { CTabCtrl* pTab = GetTabControl(); ASSERT(pTab != NULL); // get tab position after resizing and calc page rect CRect rectPage, rectSheet; GetTotalClientRect(&rectSheet); if (!GetAnchorPosition(pTab->m_hWnd, rectSheet, rectPage)) return FALSE; // no page yet // temporarily resize the tab control to calc page size CRect rectSave; pTab->GetWindowRect(rectSave); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rectSave, 2); pTab->SetRedraw(FALSE); pTab->MoveWindow(rectPage, FALSE); pTab->AdjustRect(FALSE, &rectPage); pTab->MoveWindow(rectSave, FALSE); pTab->SetRedraw(TRUE); // set margins layout.marginTopLeft = rectPage.TopLeft() - rectSheet.TopLeft(); layout.marginBottomRight = rectPage.BottomRight() - rectSheet.BottomRight(); } // set anchor types layout.anchorTopLeft = TOP_LEFT; layout.anchorBottomRight = BOTTOM_RIGHT; // use this layout info return TRUE; }
void CPPPropertySheet::OnHelp() { CPropertyPage* pActivePage = GetActivePage(); if (pActivePage) pActivePage->SendMessage(WM_COMMAND, ID_HELP); }
LRESULT CSheetExchMain::OnExchangeData(WPARAM wp,LPARAM lp) { switch( wp ) { case EXCH_MSG_WP_CACL_FAIL:// 计算失败 { SetStartBom(FALSE); GetData()->SetApplySeting(TRUE); FailDispose(lp); GetData()->ResetDefParam(); } break; case EXCH_MSG_WP_CACL_STOP:// 停止 { SetStartBom(FALSE); GetData()->SetApplySeting(TRUE); GetData()->ResetDefParam(); } break; case EXCH_MSG_WP_CACL_TEMPO:// 进度通知 { m_wndPress.SetPos(lp); } break; case EXCH_MSG_WP_CACL_START:// 开始 { SetStartBom(TRUE); GetData()->SetApplySeting(FALSE); GetData()->FromExpToDefParam(); } break; case EXCH_MSG_WP_CALC_SET_BUY : // 重新设置BUY方式 { CExchCalcMain* pMain = GetData(); if( pMain != NULL ) { CExpression* pExp = (CExpression*)lp; if( pMain->GetExchExp()->m_pMainTech == pExp || pExp == NULL ) { return 0; } pMain->GetBuy()->Default(pExp, CTreeCtrlFormula::g_strFirstTechLine); CWizPageExchBuy* pPage = (CWizPageExchBuy*)GetPageByResourceID(IDD_EXCHANGE_BUY); if( pPage != NULL ) { pPage->InitialData(pMain->GetBuy()); if( ::IsWindow(pPage->GetSafeHwnd()) ) { pPage->InitCondition(); } } } } break; case EXCH_MSG_UP_CACL_SUCC:// 计算完成 { GetData()->ResetDefParam(); if( GetData()->GetOptimize()->GetValidItemCount() > 0 ) { // 打开隐含的第六页 CWizPageUnionExchCaclResult* pPage = (CWizPageUnionExchCaclResult*)GetPageByResourceID(IDD_EXCHANGE_CACL_RESULT); if( pPage == NULL ) { pPage = new CWizPageUnionExchCaclResult(this); AddPage(pPage, IDD_EXCHANGE_CACL_RESULT); SetActivePageByResource(IDD_EXCHANGE_CACL_RESULT); if( !pPage->Initial() ) { MessageBox(_T("显示计算结果失败!"), FORMULAMAN_EXCH_PROMPT, MB_OK); return 0; } } else { SetActivePageByResource(IDD_EXCHANGE_CACL_RESULT); } pPage->ClearCell(); pPage->PlayData(); } else { OpenTableWnd(); } SetStartBom(FALSE); GetData()->SetApplySeting(TRUE); } break; } CHSNewWizPage* pActivePage = GetActivePage(); if( pActivePage != NULL ) { pActivePage->SendMessage( HX_USER_COMPILEDATA,wp,lp ); } return 0; }
void ASSISTANT::Document::RaiseObjects() { if (GetActivePage()) GetActivePage()->RaiseObjects(); }
LRESULT CPropertyPageHost::OnGetCurrentPageHwnd(WPARAM /*wParam*/, LPARAM /*lParam*/) { CWnd* pActive = GetActivePage(); return pActive ? (LRESULT)pActive->GetSafeHwnd() : NULL; }
void CResizableSheetEx::PresetLayout() { if (IsWizard() || IsWizard97()) // wizard mode { // hide tab control GetTabControl()->ShowWindow(SW_HIDE); AddAnchor(ID_WIZLINE, BOTTOM_LEFT, BOTTOM_RIGHT); if (IsWizard97()) // add header line for wizard97 dialogs AddAnchor(ID_WIZLINEHDR, TOP_LEFT, TOP_RIGHT); } else // tab mode { AddAnchor(AFX_IDC_TAB_CONTROL, TOP_LEFT, BOTTOM_RIGHT); } // add a callback for active page (which can change at run-time) m_nCallbackID = AddAnchorCallback(); // use *total* parent size to have correct margins CRect rectPage, rectSheet; GetTotalClientRect(&rectSheet); GetActivePage()->GetWindowRect(&rectPage); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rectPage, 2); // pre-calculate margins m_sizePageTL = rectPage.TopLeft() - rectSheet.TopLeft(); m_sizePageBR = rectPage.BottomRight() - rectSheet.BottomRight(); // add all possible buttons, if they exist for (int i = 0; i < _propButtonsCount; i++) { CButton* dlgBtn = reinterpret_cast<CButton*>(GetDlgItem(_propButtons[i])); if (dlgBtn != NULL) { CRect rcBtn; CString sBtn; dlgBtn->GetWindowRect(rcBtn); ScreenToClient(rcBtn); HBITMAP hBmp = NULL; switch(_propButtons[i]) { case ID_WIZBACK: dlgBtn->SetWindowPos(NULL, rcBtn.left - 16, rcBtn.top - 8, rcBtn.Width(), rcBtn.Height() + 4, SWP_NOZORDER | SWP_NOREDRAW); sBtn.LoadString(IDS_BACK); //sBtn.Insert(0, _T(" ")); dlgBtn->SetWindowText(sBtn); m_BtnNavBack.SubclassDlgItem(_propButtons[i], this); m_BtnNavBack.SetIcon(IDI_ICON_NAV_BACK); rcBtn.right = rcBtn.Width() * 2 + 10; rcBtn.left = 5; rcBtn.top -= 10; rcBtn.bottom -= 3; m_BtnDonate.Create(_T("Help keep us strong!"), WS_CHILD | WS_VISIBLE | WS_GROUP, rcBtn, this, ID_WIZDONATE); m_BtnDonate.SetIcon(IDI_ICON_DONATE); m_BtnDonate.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_BtnDonate.SetDisplayStyle(CButtonST::DISP_FLAT); m_BtnDonate.SetFont(GetFont(), FALSE); AddAnchor(ID_WIZDONATE, BOTTOM_LEFT); AddAnchor(_propButtons[i], BOTTOM_RIGHT); break; case ID_WIZNEXT: dlgBtn->SetWindowPos(NULL, rcBtn.left - 14, rcBtn.top - 8, rcBtn.Width(), rcBtn.Height() + 4, SWP_NOZORDER | SWP_NOREDRAW); sBtn.LoadString(IDS_NEXT); //sBtn.Append(_T(" ")); dlgBtn->SetWindowText(sBtn); m_BtnNavNext.SubclassDlgItem(_propButtons[i], this); m_BtnNavNext.SetIcon(IDI_ICON_NAV_NEXT); m_BtnNavNext.SetAlign(CButtonST::ST_ALIGN_HORIZ_RIGHT); AddAnchor(_propButtons[i], BOTTOM_RIGHT); break; case IDCANCEL: dlgBtn->SetWindowPos(NULL, rcBtn.left - 14, rcBtn.top - 8, rcBtn.Width(), rcBtn.Height() + 4, SWP_NOZORDER | SWP_NOREDRAW); sBtn.LoadString(IDS_CANCEL); //sBtn.Append(_T(" ")); dlgBtn->SetWindowText(sBtn); m_BtnNavCancel.SubclassDlgItem(_propButtons[i], this); m_BtnNavCancel.SetIcon(IDI_ICON_NAV_CANCEL); m_BtnNavCancel.SetAlign(CButtonST::ST_ALIGN_HORIZ_RIGHT); AddAnchor(_propButtons[i], BOTTOM_RIGHT); break; case ID_WIZFINISH: dlgBtn->SetWindowPos(NULL, rcBtn.left - 14, rcBtn.top - 8, rcBtn.Width(), rcBtn.Height() + 4, SWP_NOZORDER | SWP_NOREDRAW); sBtn.LoadString(IDS_FINISH); //sBtn.Append(_T(" ")); dlgBtn->SetWindowText(sBtn); m_BtnNavFinish.SubclassDlgItem(_propButtons[i], this); m_BtnNavFinish.SetIcon(IDI_ICON_NAV_FINISH); m_BtnNavFinish.SetAlign(CButtonST::ST_ALIGN_HORIZ_RIGHT); AddAnchor(_propButtons[i], BOTTOM_RIGHT); break; } } } }
void CMergeWizard::OnCancel() { CMergeWizardBasePage * page = (CMergeWizardBasePage*)GetActivePage(); if ((page==nullptr) || page->OkToCancel()) Default(); }
LRESULT CPropSheet::WizardNext()//后一页面 { CPropertyPage* pPage = GetActivePage(); int nPrint = _wtoi(g_sorFileArray.reportConfig.Print); //是否为报表 int nActivePage = GetActiveIndex(); switch (nActivePage) { case REPORT_PAGE::PROP_SETTING: { if (0!=g_sorFileArray.totalCurveNumber) { g_sorFileArray.Reset();//zll 2012.9.29 } pPage->OnWizardNext(); SetActivePage(PROP_FILE_SELECT); break; } case REPORT_PAGE::PROP_FILE_SELECT://修改或添加一些报表内容,lzy2014.9.12 { if (0!=g_sorFileArray.totalCurveNumber) { g_sorFileArray.Reset();//zll 2012.9.29 } //if(-1 != pPage->OnWizardNext()) //SetActivePage(PROP_CONFIG); pPage->OnWizardNext(); break; } case REPORT_PAGE::PROP_CONFIG: //显示曲线,lzy2014.9.12 { if (0!=g_sorFileArray.totalCurveNumber) { g_sorFileArray.Reset();//zll 2012.9.29 } //SetActivePage(PROP_FILE_SELECT); //pPage = GetActivePage(); pPage->OnWizardNext(); break; } case REPORT_PAGE::PROP_OUTPUT: break; //case REPORT_PAGE::PROP_WAVE_ITEM: // { // //if (nPrint == 1) //波形 // // SetActivePage(PROP_WAVE_SETTING); // //else //总表 // // SetActivePage(PROP_RPT_SETTING); // //pPage->OnWizardNext(); // if (0!=g_sorFileArray.totalCurveNumber) // { // g_sorFileArray.Reset();//zll 2012.9.29 // } // pPage->OnWizardNext();//zll,2012.9.4 // SetActivePage(PROP_FILE_SELECT); // break; // } //case REPORT_PAGE::PROP_WAVE_SETTING: // { // if (0!=g_sorFileArray.totalCurveNumber) // { // g_sorFileArray.Reset();//zll 2012.9.29 // } // pPage->OnWizardNext(); // SetActivePage(PROP_FILE_SELECT); // break; // } //case REPORT_PAGE::PROP_RPT_SETTING: // { // if (0!=g_sorFileArray.totalCurveNumber) // { // g_sorFileArray.Reset();//zll 2012.9.29 // } // pPage->OnWizardNext(); // SetActivePage(PROP_FILE_SELECT); // break; // } } return 0; }
BOOL CInfoSheet::OnIdle(LONG lCount) { // get active view CWorldEditorView *pWorldEditorView = theApp.GetActiveView(); // get active document CWorldEditorDoc* pDoc = theApp.GetActiveDocument(); // if we don't have view if( pDoc == NULL) { // force info mode: INFO_MODE_GLOBAL if( m_ModeID != INFO_MODE_GLOBAL) { SetInfoModeGlobal(); CMainFrame* pMainFrame = STATIC_DOWNCAST(CMainFrame, AfxGetMainWnd()); pMainFrame->SetFocus(); } } else { // if CSG is on if( pDoc->m_iMode == CSG_MODE) { ASSERT(pDoc->m_pwoSecondLayer != NULL); // if CSG is done with primitive force info mode: INFO_MODE_PRIMITIVE if( pDoc->m_bPrimitiveMode) { if( m_ModeID != INFO_MODE_PRIMITIVE) { // primitive mode includes position page SetInfoModePrimitive(); } } // else force info mode: INFO_MODE_POSITION else { if( m_ModeID != INFO_MODE_POSITION) { // no primitive page, only position page SetInfoModePosition(); } } } // else if we are in entity mode and only one entity is selected, // force info mode: INFO_MODE_POSITION else if( (pDoc->m_iMode == ENTITY_MODE) && (pDoc->m_selEntitySelection.Count() == 1) ) { if( m_ModeID != INFO_MODE_POSITION) { SetInfoModePosition(); } } // else if we are in polygon mode else if( pDoc->m_iMode == POLYGON_MODE) { if( m_ModeID == INFO_MODE_POLYGON) { if( GetActivePage() == &m_PgTexture) _iLastActivePgInPolygonMode = 1; else if( GetActivePage() == &m_PgShadow)_iLastActivePgInPolygonMode = 2; else _iLastActivePgInPolygonMode = 3; } if( m_ModeID != INFO_MODE_POLYGON) { SetInfoModePolygon(); } } // else if we are in sector mode else if( pDoc->m_iMode == SECTOR_MODE) { if( m_ModeID != INFO_MODE_SECTOR) { SetInfoModeSector(); } } // else if we are in terrain mode else if( pDoc->m_iMode == TERRAIN_MODE) { if( m_ModeID != INFO_MODE_TERRAIN) { SetInfoModeTerrain(); } } // we are not in CSG mode nor in single entity mode, force info mode: INFO_MODE_GLOBAL else { if( m_ModeID != INFO_MODE_GLOBAL) { SetInfoModeGlobal(); } } } // call OnIdle() for active page CPropertyPage *pgActivPage = GetActivePage(); CALLACTIVEPAGE(OnIdle, lCount); return TRUE; }
void CModControlView::ForceRefresh() //--------------------------------- { SetActivePage(GetActivePage()); }