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

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

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