7fd59977 |
1 | // OCCDemo.cpp : Defines the class behaviors for the application. |
2 | // |
3 | |
4 | #include "stdafx.h" |
5 | #include "OCCDemo.h" |
6 | |
7 | #include "MainFrm.h" |
8 | #include "OCCDemoDoc.h" |
9 | #include "OCCDemoView.h" |
10 | |
11 | #include <Standard_Version.hxx> |
12 | |
13 | #ifdef _DEBUG |
14 | #undef THIS_FILE |
15 | static char THIS_FILE[] = __FILE__; |
16 | #endif |
17 | |
18 | ///////////////////////////////////////////////////////////////////////////// |
19 | // COCCDemoApp |
20 | |
21 | BEGIN_MESSAGE_MAP(COCCDemoApp, CWinApp) |
22 | //{{AFX_MSG_MAP(COCCDemoApp) |
23 | ON_COMMAND(ID_APP_ABOUT, OnAppAbout) |
24 | //}}AFX_MSG_MAP |
25 | // Standard file based document commands |
26 | END_MESSAGE_MAP() |
27 | |
28 | ///////////////////////////////////////////////////////////////////////////// |
29 | // COCCDemoApp construction |
30 | |
31 | COCCDemoApp::COCCDemoApp() |
32 | { |
33 | // TODO: add construction code here, |
34 | // Place all significant initialization in InitInstance |
35 | try |
36 | { |
37 | myGraphicDevice = new Graphic3d_WNTGraphicDevice; |
38 | } |
39 | catch(Standard_Failure) |
40 | { |
41 | AfxMessageBox("Fatal Error During Graphic Initialisation"); |
42 | } |
43 | } |
44 | |
45 | ///////////////////////////////////////////////////////////////////////////// |
46 | // The one and only COCCDemoApp object |
47 | |
48 | COCCDemoApp theApp; |
49 | |
50 | ///////////////////////////////////////////////////////////////////////////// |
51 | // COCCDemoApp initialization |
52 | |
53 | BOOL COCCDemoApp::InitInstance() |
54 | { |
55 | // Standard initialization |
56 | // If you are not using these features and wish to reduce the size |
57 | // of your final executable, you should remove from the following |
58 | // the specific initialization routines you do not need. |
59 | |
60 | #ifdef _AFXDLL |
61 | Enable3dControls(); // Call this when using MFC in a shared DLL |
62 | #else |
63 | Enable3dControlsStatic(); // Call this when linking to MFC statically |
64 | #endif |
65 | |
66 | // Change the registry key under which our settings are stored. |
67 | // TODO: You should modify this string to be something appropriate |
68 | // such as the name of your company or organization. |
69 | SetRegistryKey(_T("Local AppWizard-Generated Applications")); |
70 | |
71 | LoadStdProfileSettings(); // Load standard INI file options (including MRU) |
72 | |
73 | // Register the application's document templates. Document templates |
74 | // serve as the connection between documents, frame windows and views. |
75 | |
76 | CSingleDocTemplate* pDocTemplate; |
77 | pDocTemplate = new CSingleDocTemplate( |
78 | IDR_MAINFRAME, |
79 | RUNTIME_CLASS(COCCDemoDoc), |
80 | RUNTIME_CLASS(CMainFrame), // main SDI frame window |
81 | RUNTIME_CLASS(COCCDemoView)); |
82 | AddDocTemplate(pDocTemplate); |
83 | |
84 | // Parse command line for standard shell commands, DDE, file open |
85 | CCommandLineInfo cmdInfo; |
86 | ParseCommandLine(cmdInfo); |
87 | |
88 | // Dispatch commands specified on the command line |
89 | if (!ProcessShellCommand(cmdInfo)) |
90 | return FALSE; |
91 | |
92 | // Create result dialog |
93 | AfxInitRichEdit(); |
94 | CMainFrame* cFrame = (CMainFrame*) GetMainWnd(); |
95 | COCCDemoDoc* aDoc = (COCCDemoDoc*) cFrame->GetActiveDocument(); |
96 | |
97 | // pass cFrame->GetDesktopWindow() as parent to have an independent dialog |
98 | // pass cFrame as parent to have the result dialog always above the main window |
99 | if (!aDoc->GetResultDialog()->Create(CResultDialog::IDD, cFrame->GetDesktopWindow())) |
100 | TRACE0("Failed to create result dialog\n"); |
101 | |
102 | aDoc->GetResultDialog()->SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), FALSE); |
103 | aDoc->GetResultDialog()->ShowWindow(SW_HIDE); |
104 | aDoc->GetResultDialog()->Initialize(); |
105 | |
106 | // resize the result dialog, so no clipping occures when user |
107 | // resizes the dialog manually |
108 | // position the result dialog to the left bottom corner of the view |
109 | CRect aDlgRect, aViewRect; |
110 | aDoc->GetResultDialog()->GetWindowRect(&aDlgRect); |
111 | cFrame->GetActiveView()->GetWindowRect(&aViewRect); |
112 | |
113 | int x = aViewRect.left; |
114 | int y = aViewRect.bottom - aDlgRect.Size().cy; |
115 | int cx = aDlgRect.Size().cx+1; |
116 | int cy = aDlgRect.Size().cy+1; |
117 | aDoc->GetResultDialog()->SetWindowPos(NULL, x, y, cx, cy, SWP_NOREDRAW | SWP_NOZORDER); |
118 | |
119 | m_pMainWnd->ShowWindow(SW_SHOW); |
120 | m_pMainWnd->UpdateWindow(); |
121 | m_pMainWnd->SetFocus(); |
122 | aDoc->Start(); |
123 | |
124 | return TRUE; |
125 | } |
126 | |
127 | |
128 | ///////////////////////////////////////////////////////////////////////////// |
129 | // CAboutDlg dialog used for App About |
130 | |
131 | class CAboutDlg : public CDialog |
132 | { |
133 | public: |
134 | CAboutDlg(); |
135 | BOOL OnInitDialog(); |
136 | |
137 | // Dialog Data |
138 | //{{AFX_DATA(CAboutDlg) |
139 | enum { IDD = IDD_ABOUTBOX }; |
140 | //}}AFX_DATA |
141 | |
142 | // ClassWizard generated virtual function overrides |
143 | //{{AFX_VIRTUAL(CAboutDlg) |
144 | protected: |
145 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support |
146 | //}}AFX_VIRTUAL |
147 | |
148 | // Implementation |
149 | protected: |
150 | //{{AFX_MSG(CAboutDlg) |
151 | // No message handlers |
152 | //}}AFX_MSG |
153 | DECLARE_MESSAGE_MAP() |
154 | }; |
155 | |
156 | CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) |
157 | { |
158 | //{{AFX_DATA_INIT(CAboutDlg) |
159 | //}}AFX_DATA_INIT |
160 | } |
161 | |
162 | void CAboutDlg::DoDataExchange(CDataExchange* pDX) |
163 | { |
164 | CDialog::DoDataExchange(pDX); |
165 | //{{AFX_DATA_MAP(CAboutDlg) |
166 | //}}AFX_DATA_MAP |
167 | } |
168 | |
169 | BOOL CAboutDlg::OnInitDialog(){ |
170 | |
171 | CWnd* TitleWnd = GetDlgItem(IDC_ABOUTBOX_TITLE); |
172 | CString TitleString; |
173 | TitleWnd->GetWindowText(TitleString); |
174 | |
175 | CString OCC_Version = OCC_VERSION_STRING; |
176 | TitleString = TitleString + OCC_Version; |
177 | |
178 | TitleWnd->SetWindowText(TitleString); |
179 | |
180 | CenterWindow(); |
181 | |
182 | return TRUE; |
183 | } |
184 | |
185 | |
186 | BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) |
187 | //{{AFX_MSG_MAP(CAboutDlg) |
188 | // No message handlers |
189 | //}}AFX_MSG_MAP |
190 | END_MESSAGE_MAP() |
191 | |
192 | // App command to run the dialog |
193 | void COCCDemoApp::OnAppAbout() |
194 | { |
195 | CAboutDlg aboutDlg; |
196 | aboutDlg.DoModal(); |
197 | } |
198 | |
199 | ///////////////////////////////////////////////////////////////////////////// |
200 | // COCCDemoApp message handlers |
201 | |