MainWindow::MainWindow() : QMainWindow() { resize(800, 600); CreateActions(); CreateMenus(); CreateToolBars(); CreateStatusBar(); }
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (CreateToolBars ()) return -1; if (CreateStatusBar ()) return -1; UpdateInsModeButtons (add_segment_mode); return 0; }
void CMainFrame::OnEditorToolbar () { m_bEditorTB = !m_bEditorTB; if (m_bEditorTB) { if (m_pEditTool = new CEditTool ()) { m_pEditTool->Create (IDD_EDITTOOL, MineView ()); CRect rc0, rc1, rc2; MineView ()->GetClientRect (rc1); MineView ()->ClientToScreen (rc1); m_pEditTool->GetWindowRect (rc2); rc0.left = GetPrivateProfileInt ("DLE-XP", "xEditTB", 0, "dle-xp.ini"); rc0.top = GetPrivateProfileInt ("DLE-XP", "yEditTB", 0, "dle-xp.ini"); if (rc0.left < 0) rc0.left = 0; else if (rc0.left > rc1.right) rc0.left = rc1.right - rc2.Width (); if (rc0.top < 0) rc0.top = 0; else if (rc0.top > rc1.bottom) rc0.top = rc1.bottom - rc2.Height (); rc0.right = rc0.left + rc2.Width (); rc0.bottom = rc0.top + rc2.Height (); //MineView ()->ClientToScreen (rc0); m_pEditTool->MoveWindow (rc0, TRUE); m_pEditTool->ShowWindow (SW_SHOW); } else m_bEditorTB = NULL; } else { CRect rc; m_pEditTool->GetWindowRect (rc); theApp.WritePrivateProfileInt ("xEditTB", rc.left); theApp.WritePrivateProfileInt ("yEditTB", rc.top); m_pEditTool->DestroyWindow (); delete m_pEditTool; m_pEditTool = NULL; } #if EDITBAR if (m_bShowCtrlBar && m_bEditorTB) CreateToolBars (); CWnd *pWnd = m_editBar.GetParent (); m_editBar.GetParent ()->ShowWindow ((m_bShowCtrlBar && m_bEditorTB) ? SW_SHOW : SW_HIDE); m_editBar.ShowWindow ((m_bShowCtrlBar && m_bEditorTB) ? SW_SHOW : SW_HIDE); FixToolBars (); #endif }
BOOL CMainFrame::OnBarCheck(UINT nID) { BOOL bCheck = CFrameWnd::OnBarCheck (nID); CControlBar* pBar = GetControlBar (nID); m_bShowCtrlBar = pBar && ((pBar->GetStyle () & WS_VISIBLE) != 0); #if EDITBAR m_editBar.ShowWindow ((m_bShowCtrlBar && m_bEditorTB) ? SW_SHOW : SW_HIDE); #endif if (m_bShowCtrlBar) { if (m_bRecalcBarLayout) RecalcLayout (1); if (!CreateToolBars ()) FixToolBars (); } else { CRect rc; m_splitter2.GetPane (1,0)->GetWindowRect (rc); m_bRecalcBarLayout = (theApp.ToolSize ().cy == rc.Height () + 10); } return bCheck; }
ImageView::ImageView(util::MrcStack* vi, QWidget* parent, Qt::WindowFlags flags): QMainWindow(parent, flags) { setAttribute(Qt::WA_DeleteOnClose); setAttribute(Qt::WA_AlwaysShowToolTips); setAnimated(false); mVi = vi; nx = mVi->Width(); ny = mVi->Height(); nz = mVi->Size(); // qDebug()<<"here"; cx = 0; cy = 0; cz = nz/2; mZoom = 1; mx = nx*mZoom; my = ny*mZoom; mz = nz*mZoom; mXorigin1 = mz + XYZ_BSIZE + XYZ_GSIZE + 2*FRAM_BORDER; mYorigin1 = XYZ_BSIZE; mXorigin2 = XYZ_BSIZE; mYorigin2 = mz + XYZ_BSIZE + XYZ_GSIZE + 2*FRAM_BORDER; mWidth = mz+mx+ALL_BORDER+4*FRAM_BORDER; mHeight = mz + my + ALL_BORDER +40+4*FRAM_BORDER+20; //对于过大图像,要定义一个新mzoom值 if(mHeight > 700 || mWidth > 900){ int w = mWidth; int h = mHeight; float d = 0.25; while(1){ if(mZoom>d) mZoom -= d; else{ d/=5; mZoom-=d; } mHeight = h*mZoom; mWidth = w*mZoom; qDebug()<<"window size : "<<mWidth<<"*"<<mHeight; if(mHeight <= 900 && mWidth <=1100) break; } mx = nx*mZoom; my = ny*mZoom; mz = nz*mZoom; mXorigin1 = mz + XYZ_BSIZE + XYZ_GSIZE + 2*FRAM_BORDER; mYorigin1 = XYZ_BSIZE; mXorigin2 = XYZ_BSIZE; mYorigin2 = mz + XYZ_BSIZE + XYZ_GSIZE + 2*FRAM_BORDER; mWidth = mz+mx+ALL_BORDER+4*FRAM_BORDER; mHeight = mz + my + ALL_BORDER +40+4*FRAM_BORDER+20; } m_OpenZoom = mZoom; m_RelativeZoom = mZoom/m_OpenZoom; wx = mx; wy = my; wz = mz; qDebug()<<"mzoom : "<<mZoom; resize(mWidth , mHeight); mFdatayz = new unsigned char[nz*ny]; mFdataxz = new unsigned char[nx*nz]; mFdataxy = new unsigned char[nx*ny]; // mCurView = -1; m_imginfo = new ImgInfo(this); m_imginfo->setAttribute(Qt::WA_DeleteOnClose); LoadImageData(); CreateActions(); CreateToolBars(); CreateStatusBar(); CreateXYZView(); m_XSlider->setRange(0 , nx-1); m_XSlider->setValue(cx); m_YSlider->setRange(0,ny-1); m_YSlider->setValue(cy); m_ZSlider->setRange(0,nz-1); m_ZSlider->setValue(cz); qDebug()<<"here"; connect(m_imginfo , SIGNAL(destroyed(QObject*)) , this , SLOT(close())); connect(m_imginfo , SIGNAL(Adjust()) , this , SLOT(On_Adjust())); QRect rect = QApplication::desktop()->availableGeometry(); move((rect.width()-mWidth)/2 , (rect.height()-mHeight)/2); show(); }
/// <summary>Creates child windows and sets up MFC GUI classes</summary> /// <param name="lpCreateStruct">The create data.</param> /// <returns></returns> int MainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { try { // Create base if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1) throw Win32Exception(HERE, L"Unable to CMDIFrameWndEx window"); // Setup Document Tabs EnableMDITabbedGroups(TRUE, DefaultTabStyle()); // prevent the menu bar from taking the focus on activation CMFCPopupMenu::SetForceMenuFocus(FALSE); // Load menu item image (not placed on any standard toolbars): CMFCToolBar::AddToolBarForImageCollection(IDT_MENU_IMAGES, IDT_MENU_IMAGES); CMFCToolBar::AddToolBarForImageCollection(IDT_FILE, IDT_FILE); CMFCToolBar::AddToolBarForImageCollection(IDT_EDIT, IDT_EDIT); CMFCToolBar::AddToolBarForImageCollection(IDT_GAMEDATA, IDT_GAMEDATA); CMFCToolBar::AddToolBarForImageCollection(IDT_VIEW, IDT_VIEW); CMFCToolBar::AddToolBarForImageCollection(IDR_EDITOR, IDR_EDITOR); CMFCToolBar::AddToolBarForImageCollection(IDR_PROJECTVIEW, IDR_PROJECTVIEW); CMFCToolBar::AddToolBarForImageCollection(IDR_BACKUP, IDR_BACKUP); CMFCToolBar::m_dblLargeImageRatio = 1.2; // enable quick (Alt+drag) toolbar customization CMFCToolBar::EnableQuickCustomization(); // load user-defined toolbar images /*if (!CMFCToolBar::GetUserImages() && m_UserImages.Load(IDB_USER_IMAGES)) CMFCToolBar::SetUserImages(&m_UserImages);*/ // enable Visual Studio 2008 style docking + AutoHide CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2008)); CDockingManager::SetDockingMode(DT_SMART); // Create Toolbars CreateToolBars(); // Create Tool windows CreateToolWindows(); // Set document icons?? UpdateMDITabbedBarsIcons(); // Redraw? RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE); // Enable windows management dialog EnableWindowsDialog(ID_WINDOW_MANAGER, ID_WINDOW_MANAGER, TRUE); // Enable 'customize' command in menu //EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, GuiString(IDS_TOOLBAR_CUSTOMIZE).c_str(), ID_VIEW_CUSTOMIZE); // Switch the order of document name and application name on the window title bar. This // improves the usability of the taskbar because the document name is visible with the thumbnail. ModifyStyle(0, FWS_PREFIXTITLE); // Defer-Invoke 'OnInitialUpdate' once created PostMessage(WM_INITIALUPDATE); // Feedback Console << Cons::Success << "Initialized main window" << ENDL; return 0; } catch (ExceptionBase& e) { theApp.ShowError(HERE, e); return -1; } }