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

Annotation of OpenXM_contrib2/windows/engine2000/ox_plot.cpp, Revision 1.4

1.1       noro        1: // ox_plot.cpp : アプリケーション用クラスの機能定義を行います。
                      2: //
                      3:
                      4: #include "stdafx.h"
                      5: #include "ox_plot.h"
                      6:
                      7: #include "MainFrm.h"
                      8:
                      9: #ifdef _DEBUG
                     10: #define new DEBUG_NEW
                     11: #undef THIS_FILE
                     12: static char THIS_FILE[] = __FILE__;
                     13: #endif
                     14:
                     15: extern "C" {
                     16: #include "ca.h"
                     17: #include "ifplot.h"
                     18:
                     19:        extern HANDLE hStreamNotify;
                     20:        extern HANDLE hStreamNotify_Ack;
                     21:        extern DWORD MainThread;
1.4     ! noro       22:        extern int canvas_created;
1.1       noro       23:        void Init_IO();
                     24: }
                     25: /////////////////////////////////////////////////////////////////////////////
                     26: // COx_plotApp
                     27:
                     28: BEGIN_MESSAGE_MAP(COx_plotApp, CWinApp)
                     29:        //{{AFX_MSG_MAP(COx_plotApp)
                     30:        ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
                     31:        ON_COMMAND(ID_APP_EXIT, OnAppExit)
                     32:        //}}AFX_MSG_MAP
                     33: END_MESSAGE_MAP()
                     34:
                     35: /////////////////////////////////////////////////////////////////////////////
                     36: // COx_plotApp クラスの構築
                     37:
                     38: COx_plotApp::COx_plotApp()
                     39: {
                     40:        // TODO: この位置に構築用コードを追加してください。
                     41:        // ここに InitInstance 中の重要な初期化処理をすべて記述してください。
                     42:        Init_IO();
                     43: }
                     44:
                     45: /////////////////////////////////////////////////////////////////////////////
                     46: // 唯一の COx_plotApp オブジェクト
                     47:
                     48: COx_plotApp theApp;
                     49:
                     50: /////////////////////////////////////////////////////////////////////////////
                     51: // COx_plotApp クラスの初期化
                     52:
                     53: BOOL COx_plotApp::InitInstance()
                     54: {
                     55:        AfxEnableControlContainer();
                     56:
                     57:        // 標準的な初期化処理
                     58:        // もしこれらの機能を使用せず、実行ファイルのサイズを小さく
                     59:        // したければ以下の特定の初期化ルーチンの中から不必要なもの
                     60:        // を削除してください。
                     61:
                     62: #ifdef _AFXDLL
                     63:        Enable3dControls();             // 共有 DLL の中で MFC を使用する場合にはここを呼び出してください。
                     64: #else
                     65:        Enable3dControlsStatic();       // MFC と静的にリンクしている場合にはここを呼び出してください。
                     66: #endif
                     67:
                     68:        // 設定が保存される下のレジストリ キーを変更します。
                     69:        // TODO: この文字列を、会社名または所属など適切なものに
                     70:        // 変更してください。
                     71:        SetRegistryKey(_T("Local AppWizard-Generated Applications"));
                     72:
                     73:
                     74:        // メイン ウインドウを作成するとき、このコードは新しいフレーム ウインドウ オブジェクトを作成し、
                     75:        // それをアプリケーションのメイン ウインドウにセットします
                     76:
                     77:        CMainFrame* pFrame = new CMainFrame;
                     78:        m_pMainWnd = pFrame;
                     79:
                     80:        // フレームをリソースからロードして作成します
                     81:
                     82:        pFrame->m_pWindowName = "dummy window";
                     83:        pFrame->m_cansize.cx = 1;
                     84:        pFrame->m_cansize.cy = 1;
                     85:        pFrame->LoadFrame(IDR_MAINFRAME,
                     86:                WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
                     87:                NULL);
                     88:        MainThread = m_nThreadID;
                     89:
                     90:        // メイン ウィンドウが初期化されたので、表示と更新を行います。
                     91: //     pFrame->ShowWindow(SW_SHOW);
                     92: //     pFrame->UpdateWindow();
                     93:
                     94:        return TRUE;
                     95: }
                     96:
                     97: /////////////////////////////////////////////////////////////////////////////
                     98: // COx_plotApp message handlers
                     99:
                    100:
                    101:
                    102:
                    103:
                    104: /////////////////////////////////////////////////////////////////////////////
                    105: // アプリケーションのバージョン情報で使われる CAboutDlg ダイアログ
                    106:
                    107: class CAboutDlg : public CDialog
                    108: {
                    109: public:
                    110:        CAboutDlg();
                    111:
                    112: // ダイアログ データ
                    113:        //{{AFX_DATA(CAboutDlg)
                    114:        enum { IDD = IDD_ABOUTBOX };
                    115:        //}}AFX_DATA
                    116:
                    117:        // ClassWizard 仮想関数のオーバーライドを生成します。
                    118:        //{{AFX_VIRTUAL(CAboutDlg)
                    119:        protected:
                    120:        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV のサポート
                    121:        //}}AFX_VIRTUAL
                    122:
                    123: // インプリメンテーション
                    124: protected:
                    125:        //{{AFX_MSG(CAboutDlg)
                    126:                // メッセージ ハンドラはありません。
                    127:        //}}AFX_MSG
                    128:        DECLARE_MESSAGE_MAP()
                    129: };
                    130:
                    131: CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
                    132: {
                    133:        //{{AFX_DATA_INIT(CAboutDlg)
                    134:        //}}AFX_DATA_INIT
                    135: }
                    136:
                    137: void CAboutDlg::DoDataExchange(CDataExchange* pDX)
                    138: {
                    139:        CDialog::DoDataExchange(pDX);
                    140:        //{{AFX_DATA_MAP(CAboutDlg)
                    141:        //}}AFX_DATA_MAP
                    142: }
                    143:
                    144: BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
                    145:        //{{AFX_MSG_MAP(CAboutDlg)
                    146:                // メッセージ ハンドラはありません。
                    147:        //}}AFX_MSG_MAP
                    148: END_MESSAGE_MAP()
                    149:
                    150: // ダイアログを実行するためのアプリケーション コマンド
                    151: void COx_plotApp::OnAppAbout()
                    152: {
                    153:        CAboutDlg aboutDlg;
                    154:        aboutDlg.DoModal();
                    155: }
                    156:
                    157: /////////////////////////////////////////////////////////////////////////////
                    158: // COx_plotApp メッセージ ハンドラ
                    159:
                    160: BOOL COx_plotApp::PreTranslateMessage(MSG* pMsg)
                    161: {
                    162:        // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
                    163:        CMainFrame *pFrame;
                    164:
1.3       noro      165:        if ( pMsg->message == WM_APP ) {
                    166:                struct canvas *can;
1.1       noro      167:
1.3       noro      168:                can = canvas[pMsg->wParam];
                    169:                if ( !can->window ) {
                    170:                        pFrame = new CMainFrame;
                    171:                        /* XXX */
                    172:                        pFrame->m_pWindowName = (char *)malloc(MAX(strlen(can->wname),strlen("ox_plot"))+10);
                    173:                        sprintf(pFrame->m_pWindowName,"%s : %d",
                    174:                                strlen(can->wname)?can->wname:"ox_plot",can->index);
                    175:
                    176:                        pFrame->m_cansize.cx = can->width;
                    177:                        pFrame->m_cansize.cy = can->height;
                    178:                        pFrame->LoadFrame(IDR_MAINFRAME,
                    179:                                WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
                    180:                                NULL);
                    181:                        can->window = (void *)pFrame;
                    182:                        pFrame->m_wndView.can = can;
                    183:                        pFrame->ShowWindow(SW_SHOW);
                    184:                        pFrame->UpdateWindow();
                    185:                        pFrame->BringWindowToTop();
                    186:                        can->hwnd = pFrame->m_wndView.m_hWnd;
1.4     ! noro      187:                        canvas_created = 1;
1.3       noro      188:                } else
                    189:                        pFrame = (CMainFrame *)can->window;
                    190:                pFrame->RedrawWindow();
1.4     ! noro      191:        } else if ( pMsg->message == WM_APP+1 )
        !           192:                ;  // dummy message
1.1       noro      193:        return CWinApp::PreTranslateMessage(pMsg);
                    194: }
                    195:
                    196: void COx_plotApp::OnAppExit()
                    197: {
                    198:        // TODO: この位置にコマンド ハンドラ用のコードを追加してください
                    199: }
                    200:
                    201: BOOL COx_plotApp::OnIdle(LONG lCount)
                    202: {
                    203:        // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
                    204:
                    205:        return CWinApp::OnIdle(lCount);
                    206: }
                    207:
                    208: void COx_plotApp::OnFilePrintSetup()
                    209: {
                    210:        // XXX: the following function is protected.
                    211:        CWinApp::OnFilePrintSetup();
                    212: }

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