[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.6

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

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