예제 #1
0
LRESULT CMainFrame::OnProgressUpdate(WPARAM wParam, LPARAM lParam)
{

    CMFCRibbonProgressBar * elem = reinterpret_cast<CMFCRibbonProgressBar * >(m_wndStatusBar.GetExElement(1));
    if (lParam == 0)
    {
        elem->SetRange(1, 1);
        elem->SetPos(0);
    }
    else
    {
        int max = elem->GetRangeMax();
        if (max < lParam)
        {
            elem->SetRange(1, lParam);
        }
        elem->SetPos(max-lParam);
    }
    return 0;
}
예제 #2
0
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)
        return -1;

    m_wndClientArea.ModifyStyleEx(WS_EX_CLIENTEDGE, 0);

    // create a view to occupy the client area of the frame
    //if (!m_wndView.Create(IDD_ABOUTBOX, this))
    //m_wndView.Create(GetSafeHwnd(), CRect(10,300,100,330), _T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, NULL, 2);
    //if (!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL))
    //{
    //	TRACE0("Failed to create view window\n");
    //	return -1;
    //}
    // set the visual manager and style based on persisted value
    OnApplicationLook(theApp.m_nAppLook);

    //// 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("Failed to create view window\n");
    //	return -1;
    //}

    boost::filesystem::path iniPath;
    GetIniPath(iniPath);
    CComPtr<IConfig> ini = CreateIConfig(AMT_INI, iniPath);
    CString config1( ini->Get(g_szConfigSection, RepLabel1, _T("0")) );
    CString config2( ini->Get(g_szConfigSection, RepLabel2, _T("1")) );

    m_splitter.Create(m_hWndMDIClient, ATL::CWindow::rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);

    m_repositoryDlg.Create(m_splitter);

    //m_detailSheetView.SetReflectNotifications(true);
    m_detailSheetView.SetTabStyles(CTCS_BOTTOM | CTCS_TOOLTIPS);
    m_detailSheetView.Create(m_splitter, ATL::CWindow::rcDefault);
    //m_detailView.SetFont(WTL::AtlGetDefaultGuiFont());

    m_sourceEclView.Create(m_detailSheetView, ATL::CWindow::rcDefault);
    m_sourceEclView.DoInit();
    m_sourceEclView.SetReadOnly(true);
    //TODO:  InitEclCommandMixin(this, this, &m_sourceEclView, this);
    m_detailSheetView.AddTab(m_sourceEclView, _T("Source ECL"));

    m_diffView.Create(m_detailSheetView, ATL::CWindow::rcDefault, _T(""), WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_CLIENTEDGE);
    m_detailSheetView.AddTab(m_diffView, _T("Differences"));

    m_targetEclView.Create(m_detailSheetView, ATL::CWindow::rcDefault);
    m_targetEclView.DoInit();
    m_targetEclView.SetReadOnly(true);
    //TODO:  InitEclCommandMixin(this, this, &m_targetEclView, this);
    m_detailSheetView.AddTab(m_targetEclView, _T("Target ECL"));

    m_dependees.Create(m_detailSheetView, ATL::CWindow::rcDefault, NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_CLIENTEDGE);
    m_dependees.SetFont(WTL::AtlGetDefaultGuiFont());
    m_detailSheetView.AddTab(m_dependees, _T("Dependee Check"));

    m_logView.Create(m_detailSheetView, ATL::CWindow::rcDefault, NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VSCROLL | LBS_NOINTEGRALHEIGHT, WS_EX_CLIENTEDGE);
    m_logView.SetFont(WTL::AtlGetDefaultGuiFont());
    m_detailSheetView.AddTab(m_logView, _T("Log"));

    WTL::CEdit edit;
    edit.Create(m_detailSheetView, ATL::CWindow::rcDefault, NULL, ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_HSCROLL | WS_VSCROLL, WS_EX_CLIENTEDGE);

    CString face = _T("MS Shell Dlg");
    int nPointSize = 8;

    WTL::CFont font;
    WTL::CLogFont logFont;
    logFont.lfCharSet = DEFAULT_CHARSET;
    logFont.lfHeight = nPointSize*10;
    ::_tcsncpy(logFont.lfFaceName, face, LF_FACESIZE);
    logFont.lfWeight = FW_LIGHT;
    logFont.lfQuality = PROOF_QUALITY;
    logFont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
    logFont.lfOutPrecision = OUT_TT_PRECIS;
    if ( font.CreatePointFontIndirect(&logFont,0) )
    {
        edit.SetFont(font.Detach(),false);
    }
    m_warnView.SetEditCtrl(edit.Detach());

    m_detailSheetView.AddTab(m_warnView, _T("Warnings"));
    m_detailSheetView.GetTabCtrl().SetCurSel(1);

    m_splitter.SetSplitterPanes(m_repositoryDlg, m_detailSheetView);
    m_splitter.SetSplitterPosPct(50);

    m_wndRibbonBar.Create(this);
    InitializeRibbon();

    if (!m_wndStatusBar.Create(this))
    {
        TRACE0("Failed to create status bar\n");
        return -1;      // fail to create
    }

    m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1, _T(""), TRUE), _T(""));
    m_wndStatusBar.AddExtendedElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE2, _T(""), TRUE), _T(""));
    CMFCRibbonProgressBar * elem = new CMFCRibbonProgressBar(ID_STATUSBAR_PANE3);
    m_wndStatusBar.AddExtendedElement(elem, _T("Progress"));
    elem->SetRange(1, 1);
    elem->SetPos(0);

    // enable Visual Studio 2005 style docking window behavior
    CDockingManager::SetDockingMode(DT_SMART);
    // enable Visual Studio 2005 style docking window auto-hide behavior
    EnableAutoHidePanes(CBRS_ALIGN_ANY);

    // Enable enhanced windows management dialog
    //EnableWindowsDialog(ID_WINDOW_MANAGER, IDS_WINDOWS_MANAGER, TRUE);

    HICON newIcon = LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME_AMT));
    HICON oldIcon = SetIcon(newIcon, false);
    HICON oldIcon2 = SetIcon(newIcon, true);

    RecalcLayout();
    if ( !m_bStreamInit )
    {
        m_pOldBuf = std::cerr.rdbuf(&m_EditStrBuf);
        m_pOldBufW = std::wcerr.rdbuf(&m_EditStrBufW);
        m_bStreamInit = true;
    }

    PostMessage(UM_INITIALIZE);
    return 0;
}