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

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

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