[BACK]Return to MainFrm.cpp CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / windows / engine2000

Annotation of OpenXM_contrib2/windows/engine2000/MainFrm.cpp, Revision 1.1

1.1     ! noro        1: // MainFrm.cpp : CMainFrame クラスの動作の定義を行います。
        !             2: //
        !             3:
        !             4: #include "stdafx.h"
        !             5: #include "ox_plot.h"
        !             6:
        !             7: #include "MainFrm.h"
        !             8:
        !             9: extern "C" {
        !            10: #include "ca.h"
        !            11: #include "ifplot.h"
        !            12: }
        !            13:
        !            14: #ifdef _DEBUG
        !            15: #define new DEBUG_NEW
        !            16: #undef THIS_FILE
        !            17: static char THIS_FILE[] = __FILE__;
        !            18: #endif
        !            19:
        !            20: /////////////////////////////////////////////////////////////////////////////
        !            21: // CMainFrame
        !            22:
        !            23: IMPLEMENT_DYNAMIC(CMainFrame, CFrameWnd)
        !            24:
        !            25: BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
        !            26:        //{{AFX_MSG_MAP(CMainFrame)
        !            27:        ON_WM_CREATE()
        !            28:        ON_WM_SETFOCUS()
        !            29:        ON_WM_CLOSE()
        !            30:        ON_COMMAND(ID_APP_EXIT, OnAppExit)
        !            31:        //}}AFX_MSG_MAP
        !            32:        ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
        !            33:        ON_COMMAND(ID_FILE_PRINT_SETUP, OnFilePrintSetup)
        !            34:        ON_UPDATE_COMMAND_UI(ID_INDICATOR_PROGRESS,OnUpdateProgress)
        !            35: END_MESSAGE_MAP()
        !            36:
        !            37: static UINT indicators[] =
        !            38: {
        !            39:        ID_SEPARATOR,           // ステータス ライン インジケータ
        !            40:        ID_INDICATOR_PROGRESS,
        !            41: //     ID_INDICATOR_KANA,
        !            42: //     ID_INDICATOR_CAPS,
        !            43: //     ID_INDICATOR_NUM,
        !            44: //     ID_INDICATOR_SCRL,
        !            45: };
        !            46: /////////////////////////////////////////////////////////////////////////////
        !            47: // CMainFrame クラスの構築/消滅
        !            48:
        !            49: CMainFrame::CMainFrame()
        !            50: {
        !            51:        // TODO: この位置にメンバの初期化処理コードを追加してください。
        !            52:
        !            53: }
        !            54:
        !            55: CMainFrame::~CMainFrame()
        !            56: {
        !            57: }
        !            58:
        !            59: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
        !            60: {
        !            61:        if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
        !            62:                return -1;
        !            63:        // フレームのクライアント領域全体を占めるビューを作成します。
        !            64:        if (!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
        !            65:                CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL))
        !            66:        {
        !            67:                TRACE0("Failed to create view window\n");
        !            68:                return -1;
        !            69:        }
        !            70:        if (!m_wndStatusBar.Create(this) ||
        !            71:                !m_wndStatusBar.SetIndicators(indicators,
        !            72:                  sizeof(indicators)/sizeof(UINT)))
        !            73:        {
        !            74:                TRACE0("Failed to create status bar\n");
        !            75:                return -1;      // 作成に失敗
        !            76:        }
        !            77:
        !            78:        m_nProgress = 100;
        !            79:
        !            80:        UINT nID,nStyle;
        !            81:        int cxWidth;
        !            82:
        !            83:        m_wndStatusBar.GetPaneInfo(0,nID,nStyle,cxWidth);
        !            84:        cxWidth = 0;
        !            85:        m_wndStatusBar.SetPaneInfo(0,nID,nStyle,cxWidth);
        !            86:
        !            87:        m_wndStatusBar.GetPaneInfo(1,nID,nStyle,cxWidth);
        !            88:        cxWidth = 150;
        !            89:        m_wndStatusBar.SetPaneInfo(1,nID,nStyle,cxWidth);
        !            90:
        !            91:        return 0;
        !            92: }
        !            93:
        !            94: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
        !            95: {
        !            96:        if( !CFrameWnd::PreCreateWindow(cs) )
        !            97:                return FALSE;
        !            98:        // TODO: この位置で CREATESTRUCT cs を修正して、Window クラスやスタイルを
        !            99:        //       修正してください。
        !           100:
        !           101:        cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
        !           102:        cs.lpszClass = AfxRegisterWndClass(0);
        !           103:        cs.lpszName = m_pWindowName;
        !           104:        cs.cx = m_cansize.cx+20; /* XXX */
        !           105:        cs.cy = m_cansize.cy+80; /* XXX */
        !           106:        return TRUE;
        !           107: }
        !           108:
        !           109: /////////////////////////////////////////////////////////////////////////////
        !           110: // CMainFrame クラスの診断
        !           111:
        !           112: #ifdef _DEBUG
        !           113: void CMainFrame::AssertValid() const
        !           114: {
        !           115:        CFrameWnd::AssertValid();
        !           116: }
        !           117:
        !           118: void CMainFrame::Dump(CDumpContext& dc) const
        !           119: {
        !           120:        CFrameWnd::Dump(dc);
        !           121: }
        !           122:
        !           123: #endif //_DEBUG
        !           124:
        !           125: /////////////////////////////////////////////////////////////////////////////
        !           126: // CMainFrame メッセージ ハンドラ
        !           127: void CMainFrame::OnSetFocus(CWnd* pOldWnd)
        !           128: {
        !           129:        // ビュー ウィンドウにフォーカスを与えます。
        !           130:        m_wndView.SetFocus();
        !           131: }
        !           132:
        !           133: BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
        !           134: {
        !           135:        // ビューに最初にコマンドを処理する機会を与えます。
        !           136:        if (m_wndView.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))
        !           137:                return TRUE;
        !           138:
        !           139:        // 処理されなかった場合にはデフォルトの処理を行います。
        !           140:        return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
        !           141: }
        !           142:
        !           143:
        !           144: void CMainFrame::OnClose()
        !           145: {
        !           146:        // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
        !           147:        m_wndView.DestroyCanvas();
        !           148:        CFrameWnd::OnClose();
        !           149: }
        !           150:
        !           151: void CMainFrame::OnAppExit()
        !           152: {
        !           153:        // TODO: この位置にコマンド ハンドラ用のコードを追加してください
        !           154:        OnClose();
        !           155: }
        !           156:
        !           157: void CMainFrame::OnUpdateProgress(CCmdUI *pCmdUI)
        !           158: {
        !           159:        int mode;
        !           160:        CString strProgress;
        !           161:
        !           162:        if ( !m_wndView.can )
        !           163:                return;
        !           164:        switch ( mode = m_wndView.can->mode ) {
        !           165:                case MODE_IFPLOT: case MODE_CONPLOT:
        !           166:                        pCmdUI->Enable();
        !           167:                        strProgress.Format("%s%d%%",m_wndView.can->prefix,m_wndView.can->percentage);
        !           168:                        pCmdUI->SetText(strProgress);
        !           169:                        break;
        !           170:                default:
        !           171:                        break;
        !           172:        }
        !           173: }
        !           174:
        !           175: void CMainFrame::OnFilePrintSetup()
        !           176: {
        !           177:        theApp.OnFilePrintSetup();
        !           178: }
        !           179:
        !           180: void CMainFrame::OnFilePrint()
        !           181: {
        !           182:        CDC dc;
        !           183:        CPrintDialog pd(TRUE);
        !           184:        int ret;
        !           185:
        !           186:        ret = theApp.DoPrintDialog(&pd);
        !           187:        if ( ret == IDOK ) {
        !           188:                theApp.CreatePrinterDC(dc);
        !           189:                m_wndView.OnPrint(dc);
        !           190:        }
        !           191: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>