示例#1
0
HRESULT CNodeSim::FE_OpenFunctioneditorFile(CString omStrNewCFileName, HWND hMainFrame, S_EXFUNC_PTR& sExInitStruct)
{
    if (CGlobalObj::ouGetObj(m_eBus).m_pEditorDocTemplate == NULL)
    {
        CGlobalObj::ouGetObj(m_eBus).m_pEditorDocTemplate = new CMultiDocTemplate(IDI_ICON_FN_EDITOR,
                RUNTIME_CLASS(CFunctionEditorDoc),
                RUNTIME_CLASS(CEditFrameWnd), // custom MDI child frame
                RUNTIME_CLASS(CFileView));
        //AddDocTemplate(CGlobalObj::m_pEditorDocTemplate);
    }

    CGlobalObj::sm_hWndMDIParentFrame = hMainFrame;
    NS_UpdateFuncStructsNodeSimEx((PVOID)&sExInitStruct, UPDATE_ALL);
    return CGlobalObj::ouGetObj(m_eBus).bOpenFunctioneditorfile(omStrNewCFileName) ? S_OK : S_FALSE;
}
示例#2
0
HRESULT CNodeSim::FE_CreateFuncEditorTemplate(HWND handle, S_EXFUNC_PTR& sExInitStruct)
{
    //AFX_MANAGE_STATE(AfxGetStaticModuleState());
    if (CGlobalObj::ouGetObj(m_eBus).m_pEditorDocTemplate == NULL)
    {
        CEditFrameWnd::sm_eBus = m_eBus;
        CFileView::sm_eBus = m_eBus;
        CGlobalObj::ouGetObj(m_eBus).m_pEditorDocTemplate = new CMultiDocTemplate(IDI_ICON_FN_EDITOR,

                RUNTIME_CLASS(CFunctionEditorDoc),
                RUNTIME_CLASS(CEditFrameWnd), // custom MDI child frame
                RUNTIME_CLASS(CFileView));
        //AddDocTemplate(CGlobalObj::m_pEditorDocTemplate);
    }
    CGlobalObj::sm_hWndMDIParentFrame = handle;
    NS_UpdateFuncStructsNodeSimEx((PVOID)&sExInitStruct, UPDATE_ALL);

    CFrameWnd* pParent = (CFrameWnd*)CWnd::FromHandle(CGlobalObj::sm_hWndMDIParentFrame);
    // Get Window rectangle from configuration module
    if ((CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement.length == 0) ||
            (CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement.rcNormalPosition.top == -1))
    {
        CGlobalObj::ouGetObj(m_eBus).bGetDefaultValue(SIMSYS_WND_PLACEMENT, CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement);
    }
    // Check for window pointer
    if( CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd == NULL )
    {
        // Create New Instance
        CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd = new CSimSysWnd(m_eBus);
        if( CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd != NULL )
        {
            // Register Window Class
            LPCTSTR strMDIClass = AfxRegisterWndClass(
                                      CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS,
                                      LoadCursor(NULL, IDC_CROSS), 0,
                                      AfxGetApp()->LoadIcon(IDI_ICON_FN_EDITOR) );
            // Set the size got from configuration module
            CRect omRect(CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement.rcNormalPosition);
            // Create Simulated system Configuration window
            CString omTitle;
            omTitle.Format("%s - %s", defSTR_SIMSYS_WINDOW_TITLE, CGlobalObj::omGetBusName(m_eBus));
            if( CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->Create( strMDIClass,
                    omTitle.GetBuffer(MAX_PATH),
                    WS_CHILD | WS_OVERLAPPEDWINDOW,
                    omRect, (CMDIFrameWnd*)pParent ) == TRUE )
            {

                // Show window and set focus
                CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->ShowWindow( SW_SHOW );
                CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->SetFocus();
                if ((CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement.rcNormalPosition.bottom == 0) &&
                        (CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement.rcNormalPosition.left   == 0) &&
                        (CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement.rcNormalPosition.right  == 0) &&
                        (CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement.rcNormalPosition.top    == 0))
                {
                    //Propably new configuration
                    CGlobalObj::ouGetObj(m_eBus).bGetDefaultValue(SIMSYS_WND_PLACEMENT, CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement);
                }
                CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->m_wWndPlacement = CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement;
                CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->SetWindowPlacement
                (&(CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->m_wWndPlacement));
                CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->ShowWindow( SW_RESTORE );

            }
        }
    }
    // If already exist then activate and set the focus
    else
    {
        CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->ShowWindow( SW_RESTORE );
        CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->MDIActivate();
        CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->SetActiveWindow();
    }
    return S_OK;
}