home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / componen / interact / demo / data.2 / samples / mfc / TRAVEL / TRAVEL.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-05  |  5.6 KB  |  261 lines

  1.  
  2. //lRegen_FileHeading
  3. //lRegen_FileHeading
  4.  
  5.  
  6.      /********************************************************************
  7.       *
  8.       *   Source File:  travel.cpp
  9.       *   Author:       RC
  10.       *   Module:       C++ Source file for travel application
  11.       *   Program Desc:
  12.       *   Date:         Fri Apr 05 12:20:29 1996
  13.       *   Language:     MFC C++ 3.0
  14.       *
  15.       ********************************************************************/
  16.  
  17. #include ".\travel.h"
  18. #include ".\mainapp.h"
  19. #include "ctl3d.h"
  20. //Regen_Vars
  21. //Regen_Vars
  22.  
  23. BEGIN_MESSAGE_MAP(CMainWindow, CDialog)
  24.    //{{AFX_MSG_MAP(CMainWindow)
  25.    ON_COMMAND(IDM_SHORTESTDISTANCE, OnIDM_SHORTESTDISTANCE)
  26.    ON_COMMAND(IDM_FILE_PRINT, OnIDM_FILE_PRINT)
  27.    ON_COMMAND(IDM_APP_EXIT, OnIDM_APP_EXIT)
  28.    ON_COMMAND(IDM_ABOUT, OnIDM_ABOUT)
  29.    ON_WM_CLOSE()
  30.    ON_MESSAGE(IDOM_N_ENTITYADDREQUEST, Onidomnentityaddrequest)
  31.    ON_MESSAGE(IDOM_N_RELATIONADDED, Onidomnrelationadded)
  32.    ON_MESSAGE(IDOM_N_RELATIONADDREQUEST, Onidomnrelationaddrequest)
  33.    ON_WM_DESTROY()
  34.    ON_WM_SIZE()
  35.    //}}AFX_MSG_MAP
  36.  
  37.    //Regen_Map
  38.    //Regen_Map
  39.  
  40. END_MESSAGE_MAP()
  41.  
  42. CMainWindow::CMainWindow(UINT nIDTemplate, CWnd* pParentWnd)
  43.    : CDialog((nIDTemplate) ? nIDTemplate : master, pParentWnd)
  44. {
  45.    //lRegen_MainVarConstruct
  46.    m_pIDO = NULL;
  47.    //lRegen_MainVarConstruct
  48.    Create(master);
  49.    //Regen_MainConstruct
  50.    //Regen_MainConstruct
  51.  
  52. }
  53.  
  54. Ctravel theApp;
  55.  
  56. // Initialize Instance and create the application's main window
  57. BOOL Ctravel::InitInstance()
  58. {
  59.  
  60.    //lRegen_InitInstance
  61.    //lRegen_InitInstance
  62.    //Regen_MainInit
  63.    //Regen_MainInit
  64.  
  65.    #ifdef WIN32
  66.    Enable3dControls();                  // Initialize Ctl3D Support
  67.    #else
  68.    Ctl3dRegister(m_hInstance);
  69.    Ctl3dAutoSubclass(m_hInstance);
  70.    #endif
  71.  
  72.  
  73.    //lRegen_MainRun
  74.    //lRegen_MainRun
  75.    m_pMainWnd = new CMainWindow(0, NULL);
  76.    m_pMainWnd->ShowWindow(m_nCmdShow);
  77.    m_pMainWnd->UpdateWindow();
  78.  
  79.    //Regen_MainExit
  80.    //Regen_MainExit
  81.  
  82.    return TRUE;
  83. }
  84.  
  85. BOOL Ctravel::ExitInstance()
  86. {
  87. //Regen_ExitInstance
  88. //Regen_ExitInstance
  89.  
  90.    return CWinApp::ExitInstance();
  91. }
  92.  
  93. // ------------- Main Window Destructor ---------
  94. CMainWindow::~CMainWindow()
  95. {
  96.  
  97.    //Regen_MainDestruct
  98.    //Regen_MainDestruct
  99.  
  100.    pMenu->DestroyMenu();
  101.    delete pMenu;
  102.  
  103. }
  104.  
  105. BOOL CMainWindow::OnInitDialog()
  106. {
  107.    //Regen_MainInitDlgVars
  108.    //Regen_MainInitDlgVars
  109.    pMenu = new CMenu;
  110.    pMenu->LoadMenu(TRAVEL);
  111.    SetMenu(pMenu);
  112.  
  113.    //Regen_MenuLoad
  114.    //Regen_MenuLoad
  115.  
  116.    //Regen_MainInitDlg
  117.    //Regen_MainInitDlg
  118.    CDialog::OnInitDialog();
  119.    //Regen_MainInitDlgEnd
  120.    long lStyle = WS_VISIBLE | WS_CHILD | WS_HSCROLL | WS_VSCROLL | WS_TABSTOP;
  121.    RECT rect;
  122.  
  123.    GetClientRect(&rect);
  124.  
  125.    m_pIDO = new CIDO;
  126.    m_pIDO->Create(lStyle, rect, this, IDC_IDO1);
  127.  
  128.    if(m_pIDO)
  129.    {
  130.       m_pIDO->SetEditMode(TRUE);
  131.       m_pIDO->SetToolsPalette(TRUE);
  132.       m_pIDO->SetRulesEnforced(FALSE);
  133.       m_pIDO->ReadDiagram("travel.ido");
  134.    }
  135.  
  136.    //Regen_MainInitDlgEnd
  137.    return TRUE;
  138. }
  139.  
  140. void CMainWindow::PostNcDestroy()
  141. {
  142.    //Regen_MainPostNcDestroy
  143.    //Regen_MainPostNcDestroy
  144.    delete this;
  145. }
  146.  
  147. void CMainWindow::OnClose()
  148. {
  149.    //Regen_WM_Close
  150.    //Regen_WM_Close
  151.    DestroyWindow();
  152.    PostQuitMessage(0);
  153. }
  154.  
  155.  
  156. LRESULT CMainWindow::Onidomnentityaddrequest(WPARAM wParam, LPARAM lParam)
  157. {
  158.    //Regen_CMainWindow_idom_n_entityaddrequest
  159.    CEntity entity((LPENTITY)lParam);
  160.    LPENTITY lpentity = (LPENTITY)lParam;
  161.  
  162.    lstrcpy(lpentity->name, "Princeton");
  163.    lstrcpy(lpentity->text, "Princeton");
  164.    //Regen_CMainWindow_idom_n_entityaddrequest
  165.    return 0;
  166. }
  167.  
  168. LRESULT CMainWindow::Onidomnrelationadded(WPARAM wParam, LPARAM lParam)
  169. {
  170.    //Regen_CMainWindow_idom_n_relationadded
  171.    CRelation relation((LPRELATION)lParam);
  172.  
  173.  
  174.    relation.SetText("100");
  175.    relation.Repaint();
  176.    //Regen_CMainWindow_idom_n_relationadded
  177.    return 0;
  178. }
  179.  
  180. LRESULT CMainWindow::Onidomnrelationaddrequest(WPARAM wParam, LPARAM lParam)
  181. {
  182.    //Regen_CMainWindow_idom_n_relationaddrequest
  183.    CRelation relation((LPRELATION)lParam);
  184.  
  185.    //Regen_CMainWindow_idom_n_relationaddrequest
  186.    return 0;
  187. }
  188.  
  189. void CMainWindow::OnDestroy()
  190. {
  191.    //Regen_CMainWindow_wm_destroy
  192.    //Regen_CMainWindow_wm_destroy
  193.    CDialog::OnDestroy();
  194. }
  195.  
  196. void CMainWindow::OnSize(UINT nType, int cx, int cy)
  197. {
  198.    //Regen_CMainWindow_wm_size
  199.    RECT rect;
  200.  
  201.    GetClientRect(&rect);
  202.  
  203. #ifdef DEBUG
  204.    ASSERT_VALID(m_pIDO)
  205. #endif
  206.    if(m_pIDO)
  207.       m_pIDO->SetWindowPos(NULL, 0, 0,
  208.                            rect.right, rect.bottom,
  209.                            SWP_NOZORDER);
  210.  
  211.    //Regen_CMainWindow_wm_size
  212.    CDialog::OnSize(nType, cx, cy);
  213. }
  214.  
  215. void CMainWindow::OnIDM_SHORTESTDISTANCE()
  216. {
  217.  
  218.    //lRegen_CMainWindow_IDM_SHORTESTDISTANCE_Start
  219.    //lRegen_CMainWindow_IDM_SHORTESTDISTANCE_Start
  220. //Lock
  221.  
  222.    // lock so we can pass a pointer to the IDO
  223.    CdistanceDlg Dlg(NULL, this, m_pIDO);
  224.    int ReturnValue;
  225.  
  226.    ReturnValue = Dlg.DoModal();
  227.    //Regen_CMainWindow_IDM_SHORTESTDISTANCE_End
  228.    //Regen_CMainWindow_IDM_SHORTESTDISTANCE_End
  229. }
  230.  
  231. void CMainWindow::OnIDM_FILE_PRINT()
  232. {
  233.    //Regen_IDM_FILE_PRINT
  234.    if(m_pIDO)
  235.       m_pIDO->PrintDiagram();
  236.    //Regen_IDM_FILE_PRINT
  237. }
  238.  
  239. void CMainWindow::OnIDM_APP_EXIT()
  240. {
  241.    //Regen_IDM_APP_EXIT
  242.    //Regen_IDM_APP_EXIT
  243. }
  244.  
  245. void CMainWindow::OnIDM_ABOUT()
  246. {
  247.  
  248.    //lRegen_CMainWindow_IDM_ABOUT_Start
  249.    //lRegen_CMainWindow_IDM_ABOUT_Start
  250.  
  251.    CabouttravelDlg Dlg(NULL, this);
  252.    int ReturnValue;
  253.  
  254.    ReturnValue = Dlg.DoModal();
  255.    //Regen_CMainWindow_IDM_ABOUT_End
  256.    //Regen_CMainWindow_IDM_ABOUT_End
  257. }
  258.  
  259. //Regen_CustomCode
  260. //Regen_CustomCode
  261.