1 //#**************************************************************
2 //# filename: GeneralOptions.cpp
3 //#
4 //# author: Gerstmayr, Vetyukov
5 //#
6 //# generated:
7 //# description:
8 //# comments:
9 //#
10 //# Copyright (c) 2003-2013 Johannes Gerstmayr, Linz Center of Mechatronics GmbH, Austrian
11 //# Center of Competence in Mechatronics GmbH, Institute of Technical Mechanics at the
12 //# Johannes Kepler Universitaet Linz, Austria. All rights reserved.
13 //#
14 //# This file is part of HotInt.
15 //# HotInt is free software: you can redistribute it and/or modify it under the terms of
16 //# the HOTINT license. See folder 'licenses' for more details.
17 //#
18 //# bug reports are welcome!!!
19 //# WWW: www.hotint.org
20 //# email: bug_reports@hotint.org or support@hotint.org
21 //#***************************************************************************************
22
23
24
25 #include "stdafx.h"
26 #include "WCDriver3DDlg.h"
27 #include "WCDriver3D.h"
28 #include "FEdrawingOptions.h"
29 #include "fieldvariabledescriptor.h"
30
31
32 // GeneralOptions-Dialogfeld
33
34 //IMPLEMENT_DYNAMIC(FEDrawingOptions, CDialog)
FEDrawingOptions()35 FEDrawingOptions::FEDrawingOptions(/*CWnd* pParent*/)
36 : CDialog(FEDrawingOptions::IDD, NULL)
37 , m_maxstress(0), m_minstress(0)
38 , m_check_maxstress(FALSE)
39 , m_check_minstress(FALSE)
40 , m_colortiling(0)
41 , m_check_greymode(FALSE)
42 , m_check_invertcolors(FALSE)
43 , m_check_nonlinearscale(FALSE)
44 , m_check_hidelegend(FALSE)
45 , m_check_showmesh(TRUE)
46 , m_check_showsolution(FALSE)
47 , m_check_chladni_isolines(FALSE)
48 , m_check_draw_flat_elements(FALSE)
49 , m_elem_line_thickness(1)
50 , m_shrinking_factor(0)
51 , m_axis_tiling(0)
52 , m_axis_tiling_text(0)
53 , m_axis_resolution(0)
54 , m_axis_resolution_text(0)
55 , m_crosssection_res(0)
56 , m_crosssection_res_text(0)
57 , m_solidFE_resolution(0)
58 , m_solidFE_resolution_text(0)
59 , m_colortilingtext(_T(""))
60 , m_deformation_scale_factor(0)
61 , m_check_plot_interpolated(FALSE)
62 , m_combo_units(0)
63 , m_check_shownodes(FALSE)
64 , m_node_draw_size(0)
65 , m_check_shownodenumbers(FALSE)
66 , m_check_surface_elements_only(FALSE)
67 , m_check_animate_scaling_factor(FALSE)
68 , m_check_scale_rigid_body_disp(FALSE)
69 , m_check_auto_adjust_range(FALSE)
70 {
71 }
72
73
Create(CWnd * pParent)74 void FEDrawingOptions::Create(CWnd * pParent)
75 {
76 LoadData();
77
78 CDialog::Create(IDD,pParent);
79
80 // we populate the combo box with the types for the post-processing
81 const TArray<FieldVariableDescriptor> & variables = pWCDI->GetAvailableFieldVariables();
82 m_comboFieldVariableTypes.AddString("body color");
83 for(int i = 1; i <= variables.Length(); i++)
84 {
85 const FieldVariableDescriptor & fvd = variables(i);
86 if(!fvd.IsNotForPlotting())
87 if(m_comboFieldVariableTypes.FindString(0, fvd.GetTextualIdentifierWithoutComponents()) == CB_ERR)
88 m_comboFieldVariableTypes.AddString(fvd.GetTextualIdentifierWithoutComponents());
89 }
90
91 control_combo_units.Clear();
92 control_combo_units.AddString("N, m");
93 control_combo_units.AddString("N, mm");
94
95 control_slider_colortiling.SetRange(1,33); //needs to be done before LoadData!
96 slider_axis_tiling.SetRange(1,32);
97 slider_axis_resolution.SetRange(1,32);
98 slider_crosssection_res.SetRange(1,8);
99 slider_solidFE_resolution.SetRange(1,8);
100
101 slider_axis_tiling.SetTicFreq(2); //draw less ticks than 32, otherwise it looks very dense
102 slider_axis_resolution.SetTicFreq(2);
103
104 //these commands help that the sliders are correctly refreshed when dialog is opened the second time
105 slider_axis_tiling.SetPos(m_axis_tiling+100);
106 slider_axis_resolution.SetPos(m_axis_resolution+100);
107 slider_crosssection_res.SetPos(m_crosssection_res+100);
108 slider_solidFE_resolution.SetPos(m_solidFE_resolution+100);
109 control_slider_colortiling.SetPos(m_colortiling+100);
110
111 if (pWCDI->GetIOption(103) != 33)
112 {
113 char str[20];
114 sprintf(str, "%d", pWCDI->GetIOption(103));
115 m_colortilingtext = CString(str);
116 }
117 else
118 m_colortilingtext = CString("no color tiling");
119
120 UpdateData(FALSE);
121
122 CRect r;
123 pParent->GetWindowRect(&r);
124 CPoint p(r.right - 400,r.bottom - 0);
125 GetWindowRect(&r);
126 // ClientToScreen(&r);
127 r.top = p.y - r.Height();
128 r.left = p.x - r.Width();
129 r.right = p.x;
130 r.bottom = p.y;
131 MoveWindow(r,FALSE);
132 ShowWindow(SW_SHOW);
133
134 RedrawWindow();
135
136 }
137
LoadData()138 void FEDrawingOptions::LoadData()
139 {
140 //+++++++++++++++++++++++++++++++++++++++++++++++
141 //graphics/postprocessing:
142 m_check_maxstress = pWCDI->GetIOption(100);
143 m_check_minstress = pWCDI->GetIOption(101);
144 m_maxstress = pWCDI->GetDOption(100);
145 m_minstress = pWCDI->GetDOption(101);
146 m_current_field_variable_index = pWCDI->GetIndexOfActualPostProcessingFieldVariable();
147 m_colortiling = pWCDI->GetIOption(103);
148 m_check_greymode = pWCDI->GetIOption(105);
149 m_check_invertcolors = pWCDI->GetIOption(107);
150 m_check_nonlinearscale = pWCDI->GetIOption(108);
151 m_check_hidelegend = pWCDI->GetIOption(141);
152 m_check_auto_adjust_range = pWCDI->GetIOption(102);
153
154 m_check_showmesh = pWCDI->GetIOption(110);
155 m_check_showsolution = pWCDI->GetIOption(111);
156 m_check_chladni_isolines = pWCDI->GetIOption(116);
157 m_check_plot_interpolated = pWCDI->GetIOption(118);
158
159 m_check_draw_flat_elements = pWCDI->GetIOption(117);
160 m_elem_line_thickness = pWCDI->GetDOption(102);
161 m_shrinking_factor = pWCDI->GetDOption(106);
162 m_deformation_scale_factor = pWCDI->GetDOption(105);
163
164 //tiling:
165 m_axis_tiling = pWCDI->GetIOption(136)/2;
166 m_axis_resolution = pWCDI->GetIOption(137);
167 m_crosssection_res = pWCDI->GetIOption(138);
168 m_solidFE_resolution = pWCDI->GetIOption(139);
169
170 m_combo_units = pWCDI->GetIOption(143);
171
172 m_check_shownodes = pWCDI->GetIOption(145);
173 m_node_draw_size = pWCDI->GetDOption(124);
174 m_check_shownodenumbers = pWCDI->GetIOption(148);
175 m_check_surface_elements_only = pWCDI->GetIOption(146);
176
177 m_check_animate_scaling_factor = pWCDI->GetIOption(150);
178 m_check_scale_rigid_body_disp = pWCDI->GetIOption(151);
179 }
180
WriteData()181 void FEDrawingOptions::WriteData()
182 {
183 //graphics/postprocessing:
184 //integer/bool:
185 pWCDI->SetIOption(100, (int)m_check_maxstress);
186 pWCDI->SetIOption(101, (int)m_check_minstress);
187 pWCDI->SetIOption(103, m_colortiling);
188 pWCDI->SetIOption(105, (int)m_check_greymode);
189 pWCDI->SetIOption(107, (int)m_check_invertcolors);
190 pWCDI->SetIOption(108, (int)m_check_nonlinearscale);
191 pWCDI->SetIOption(141, (int)m_check_hidelegend);
192 pWCDI->SetIOption(102, (int)m_check_auto_adjust_range);
193
194 pWCDI->SetIOption(110, m_check_showmesh );
195 pWCDI->SetIOption(111, m_check_showsolution );
196 pWCDI->SetIOption(116, m_check_chladni_isolines);
197 pWCDI->SetIOption(117, m_check_draw_flat_elements);
198 pWCDI->SetIOption(118, m_check_plot_interpolated);
199 pWCDI->SetIndexOfActualPostProcessingFieldVariable(m_current_field_variable_index);
200
201 // double values:
202 pWCDI->SetDOption(100, m_maxstress);
203 pWCDI->SetDOption(101, m_minstress);
204 pWCDI->SetDOption(102, m_elem_line_thickness);
205 pWCDI->SetDOption(106, m_shrinking_factor);
206 pWCDI->SetDOption(105, m_deformation_scale_factor);
207
208 //tiling:
209 pWCDI->GetIOption(136) = 2*m_axis_tiling ;
210 pWCDI->GetIOption(137) = m_axis_resolution ;
211 pWCDI->GetIOption(138) = m_crosssection_res ;
212 pWCDI->GetIOption(139) = m_solidFE_resolution ;
213
214 pWCDI->GetIOption(143) = m_combo_units;
215 pWCDI->GetIOption(145) = m_check_shownodes;
216 pWCDI->GetIOption(147) = 3;
217 pWCDI->GetIOption(148) = m_check_shownodenumbers;
218 pWCDI->GetDOption(124) = m_node_draw_size;
219
220 pWCDI->GetIOption(146) = m_check_surface_elements_only;
221
222 pWCDI->GetIOption(150) = m_check_animate_scaling_factor;
223 pWCDI->GetIOption(151) = m_check_scale_rigid_body_disp;
224
225 pGLDrawWnd->SetAnimateScalingTimer(m_check_animate_scaling_factor);
226 }
227
DoDataExchange(CDataExchange * pDX)228 void FEDrawingOptions::DoDataExchange(CDataExchange* pDX)
229 {
230 CDialog::DoDataExchange(pDX);
231
232 DDX_Text(pDX, IDC_MAXSTRESS, m_maxstress);
233 DDX_Text(pDX, IDC_MINSTRESS, m_minstress);
234 DDX_Check(pDX, IDC_CHECK_MAXSTRESS, m_check_maxstress);
235 DDX_Check(pDX, IDC_CHECK_MINSTRESS, m_check_minstress);
236 DDX_Slider(pDX, IDC_SLIDER_COLORTILING, m_colortiling);
237 DDX_Control(pDX, IDC_SLIDER_COLORTILING, control_slider_colortiling);
238 DDX_Check(pDX, IDC_CHECK_GREYMODE, m_check_greymode);
239 DDX_Check(pDX, IDC_CHECK_INVERTCOLORS, m_check_invertcolors);
240 DDX_Check(pDX, IDC_CHECK_NONLINEARSCALE, m_check_nonlinearscale);
241 DDX_Check(pDX, IDC_CHECK_HIDELEGEND, m_check_hidelegend);
242 DDX_Check(pDX, IDC_CHECK_SHOWMESH, m_check_showmesh);
243 DDX_Check(pDX, IDC_SHOWSOLUTION, m_check_showsolution);
244 DDX_Check(pDX, IDC_CHECK_CHLADNI_ISOLINES, m_check_chladni_isolines);
245 DDX_Check(pDX, IDC_DRAW_FLAT_ELEMENTS, m_check_draw_flat_elements);
246 DDX_Text(pDX, IDC_ELEM_LINE_THICKNESS, m_elem_line_thickness);
247 DDV_MinMaxDouble(pDX, m_elem_line_thickness, 0.01, 100);
248 DDX_Text(pDX, IDC_EDIT_SHRINKING_FACTOR, m_shrinking_factor);
249 DDX_Slider(pDX, IDC_SLIDER_AXISTILING, m_axis_tiling);
250 DDX_Text(pDX, IDC_STATIC_AXISTILING, m_axis_tiling_text);
251 DDX_Control(pDX, IDC_SLIDER_AXISTILING, slider_axis_tiling);
252 DDX_Control(pDX, IDC_SLIDER_AXISRESOLUTION, slider_axis_resolution);
253 DDX_Slider(pDX, IDC_SLIDER_AXISRESOLUTION, m_axis_resolution);
254 DDX_Text(pDX, IDC_STATIC_AXISRESOLUTION, m_axis_resolution_text);
255 DDX_Control(pDX, IDC_SLIDER_CROSSSECTION_RES, slider_crosssection_res);
256 DDX_Slider(pDX, IDC_SLIDER_CROSSSECTION_RES, m_crosssection_res);
257 DDX_Text(pDX, IDC_STATIC_CROSSSECTION_RES, m_crosssection_res_text);
258 DDX_Control(pDX, IDC_SLIDER_FERESOLUTION, slider_solidFE_resolution);
259 DDX_Slider(pDX, IDC_SLIDER_FERESOLUTION, m_solidFE_resolution);
260 DDX_Text(pDX, IDC_STATIC_FERESOLUTION, m_solidFE_resolution_text);
261 DDX_Text(pDX, IDC_STATIC_COLORTILINGTEXT, m_colortilingtext);
262
263 DDX_Text(pDX, IDC_EDIT_DEFORMATION_SCALE_FACTOR, m_deformation_scale_factor);
264 //DDV_MinMaxDouble(pDX, m_deformation_scale_factor, 0, 1e30);
265 DDX_Check(pDX, IDC_PLOT_INTERPOLATED, m_check_plot_interpolated);
266 DDX_CBIndex(pDX, IDC_COMBO_UNITS, m_combo_units);
267 DDX_Control(pDX, IDC_COMBO_UNITS, control_combo_units);
268 DDX_Check(pDX, IDC_CHECK_SHOWNODES, m_check_shownodes);
269 DDX_Text(pDX, IDC_NODE_SIZE, m_node_draw_size);
270 DDV_MinMaxDouble(pDX, m_node_draw_size, 0, 1e30);
271 DDX_Check(pDX, IDC_CHECK_SHOWNODES_NUMBERS, m_check_shownodenumbers);
272 DDX_Check(pDX, IDC_PLOT_SURFACEONLY, m_check_surface_elements_only);
273 DDX_Check(pDX, IDC_CHECK_ANIMATE_SCALING_FACTOR, m_check_animate_scaling_factor);
274 DDX_Check(pDX, IDC_CHECK_SCALE_RIGID_BODY_DISP, m_check_scale_rigid_body_disp);
275 DDX_Control(pDX, IDC_COMBO_FIELD_VARIABLE_TYPE, m_comboFieldVariableTypes);
276 DDX_Control(pDX, IDC_COMBO_FIELD_VARIABLE_COMPONENTS, m_comboFieldVariableComponents);
277
278 DDX_Check(pDX, IDC_CHECK_AUTO_ADJUST_RANGE, m_check_auto_adjust_range);
279 GetDlgItem(IDC_BUTTON_ADJUST_RANGE)->EnableWindow(!m_check_auto_adjust_range);
280
281 // special treatment of the selector of the field variable:
282 // the result is determined by the state of the two combo-boxes
283 const TArray<FieldVariableDescriptor> & variables = pWCDI->GetAvailableFieldVariables();
284 if(pDX->m_bSaveAndValidate)
285 {
286 // reading the data from the dialog
287 if(m_comboFieldVariableTypes.GetCurSel() == 0)
288 m_current_field_variable_index = 0; // body color
289 else
290 {
291 CString textType;
292 m_comboFieldVariableTypes.GetLBText(m_comboFieldVariableTypes.GetCurSel(), textType);
293 CString textComponents;
294 if(m_comboFieldVariableComponents.GetCurSel() != CB_ERR)
295 m_comboFieldVariableComponents.GetLBText(m_comboFieldVariableComponents.GetCurSel(), textComponents);
296 int firstTypeMatchingIndex = 0;
297 for(int i = 1; i <= variables.Length(); i++)
298 {
299 const FieldVariableDescriptor & fvd = variables(i);
300 if(textType.Compare(fvd.GetTextualIdentifierWithoutComponents()) == 0)
301 {
302 // the type is the same - let's check the components
303 if(firstTypeMatchingIndex == 0)
304 firstTypeMatchingIndex = i;
305 if(textComponents.Compare(fvd.GetTextualIdentifierComponentsOnly()) == 0)
306 {
307 // found a matching entry
308 m_current_field_variable_index = i;
309 firstTypeMatchingIndex = 0;
310 break;
311 }
312 }
313 }
314 // did not find an exact matching entry - let's select the first entry with the matching type;
315 // this behavior is suitable for the selection change in m_comboFieldVariableTypes
316 if(firstTypeMatchingIndex != 0)
317 m_current_field_variable_index = firstTypeMatchingIndex;
318 }
319 }
320 else
321 {
322 // writing the data to the dialog
323 m_comboFieldVariableComponents.ResetContent();
324 m_comboFieldVariableComponents.EnableWindow(FALSE);
325 if(m_current_field_variable_index == 0 || m_current_field_variable_index > variables.Length())
326 m_comboFieldVariableTypes.SetCurSel(0); // body color
327 else
328 {
329 const FieldVariableDescriptor & fvd = variables(m_current_field_variable_index);
330 CString textType = fvd.GetTextualIdentifierWithoutComponents();
331 CString textComponents = fvd.GetTextualIdentifierComponentsOnly();
332 m_comboFieldVariableTypes.SelectString(0, textType);
333 // the combo with the components needs to be populated and set to the right position
334 // we browse thru all variables with the same type name
335 for(int i = 1; i <= variables.Length(); i++)
336 {
337 const FieldVariableDescriptor & fvd1 = variables(i);
338 if(*fvd1.GetTextualIdentifierComponentsOnly() != '\0') // there are some components
339 if(textType.Compare(fvd1.GetTextualIdentifierWithoutComponents()) == 0) // and the type is the same
340 {
341 m_comboFieldVariableComponents.EnableWindow(TRUE);
342 m_comboFieldVariableComponents.AddString(fvd1.GetTextualIdentifierComponentsOnly());
343 }
344 }
345 // and finally we select the corresponding string in the combo with components
346 m_comboFieldVariableComponents.SelectString(-1, fvd.GetTextualIdentifierComponentsOnly());
347 }
348 }
349 }
350
351
BEGIN_MESSAGE_MAP(FEDrawingOptions,CDialog)352 BEGIN_MESSAGE_MAP(FEDrawingOptions, CDialog)
353 ON_BN_CLICKED(IDOK, OnBnClickedOk)
354 ON_EN_KILLFOCUS(IDC_MAXSTRESS, OnEnKillfocusMaxstress)
355 ON_EN_KILLFOCUS(IDC_MINSTRESS, OnEnKillfocusMinstress)
356 ON_BN_CLICKED(IDC_CHECK_MINSTRESS, OnBnClickedCheckMinstress)
357 ON_BN_CLICKED(IDC_CHECK_MAXSTRESS, OnBnClickedCheckMaxstress)
358 ON_BN_CLICKED(IDC_BUTTON_UPDATEOPTIONS, OnBnClickedButtonUpdateoptions)
359 ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_COLORTILING, OnNMCustomdrawSliderColortiling)
360 ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_AXISTILING, OnNMCustomdrawSliderAxistiling)
361 ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_AXISRESOLUTION, OnNMCustomdrawSliderAxisresolution)
362 ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_CROSSSECTION_RES, OnNMCustomdrawSliderCrosssectionRes)
363 ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_FERESOLUTION, OnNMCustomdrawSliderFeresolution)
364 ON_CBN_SELCHANGE(IDC_COMBO_FIELD_VARIABLE_TYPE, &FEDrawingOptions::OnCbnSelchangeComboFieldVariableType)
365 ON_BN_CLICKED(IDC_CHECK_AUTO_ADJUST_RANGE, &FEDrawingOptions::OnBnClickedCheckAutoAdjustRange)
366 ON_BN_CLICKED(IDC_BUTTON_ADJUST_RANGE, &FEDrawingOptions::OnBnClickedButtonAdjustRange)
367 END_MESSAGE_MAP()
368
369
370 // FEDrawingOptions-Meldungshandler
371
372 void FEDrawingOptions::OnBnClickedOk()
373 {
374 OnBnClickedButtonUpdateoptions();
375
376 OnOK();
377 }
378
OnOK()379 void FEDrawingOptions::OnOK()
380 {
381 DestroyWindow();
382 }
383
OnClose()384 void FEDrawingOptions::OnClose()
385 {
386 DestroyWindow();
387 }
388
OnCancel()389 void FEDrawingOptions::OnCancel()
390 {
391 DestroyWindow();
392 }
393
OnEnKillfocusMaxstress()394 void FEDrawingOptions::OnEnKillfocusMaxstress()
395 {
396
397 }
398
OnEnKillfocusMinstress()399 void FEDrawingOptions::OnEnKillfocusMinstress()
400 {
401 }
402
OnBnClickedCheckMaxstress()403 void FEDrawingOptions::OnBnClickedCheckMaxstress()
404 {
405 }
406
OnBnClickedCheckMinstress()407 void FEDrawingOptions::OnBnClickedCheckMinstress()
408 {
409 }
410
411
OnBnClickedButtonUpdateoptions()412 void FEDrawingOptions::OnBnClickedButtonUpdateoptions()
413 {
414 UpdateData(TRUE);
415 WriteData();
416
417 pGLDrawWnd->Redraw();
418 }
419
OnNMCustomdrawSliderColortiling(NMHDR * pNMHDR,LRESULT * pResult)420 void FEDrawingOptions::OnNMCustomdrawSliderColortiling(NMHDR *pNMHDR, LRESULT *pResult)
421 {
422 LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
423
424 UpdateData(TRUE);
425 if (m_colortiling != 33)
426 {
427 char str[20];
428 sprintf(str, "%d", m_colortiling);
429 m_colortilingtext = CString(str);
430 }
431 else
432 m_colortilingtext = CString("no color tiling");
433
434 UpdateData(FALSE);
435
436 *pResult = 0;
437 }
438
439
OnNMCustomdrawSliderAxistiling(NMHDR * pNMHDR,LRESULT * pResult)440 void FEDrawingOptions::OnNMCustomdrawSliderAxistiling(NMHDR *pNMHDR, LRESULT *pResult)
441 {
442 LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
443
444 UpdateData(TRUE);
445 m_axis_tiling_text = 2*m_axis_tiling;
446 UpdateData(FALSE);
447
448 *pResult = 0;
449
450 }
451
452
OnNMCustomdrawSliderAxisresolution(NMHDR * pNMHDR,LRESULT * pResult)453 void FEDrawingOptions::OnNMCustomdrawSliderAxisresolution(NMHDR *pNMHDR, LRESULT *pResult)
454 {
455 LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
456
457 UpdateData(TRUE);
458 m_axis_resolution_text = m_axis_resolution;
459 UpdateData(FALSE);
460
461 *pResult = 0;
462 }
463
OnNMCustomdrawSliderCrosssectionRes(NMHDR * pNMHDR,LRESULT * pResult)464 void FEDrawingOptions::OnNMCustomdrawSliderCrosssectionRes(NMHDR *pNMHDR, LRESULT *pResult)
465 {
466 LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
467
468 UpdateData(TRUE);
469 m_crosssection_res_text = m_crosssection_res;
470 UpdateData(FALSE);
471
472 *pResult = 0;
473 }
474
OnNMCustomdrawSliderFeresolution(NMHDR * pNMHDR,LRESULT * pResult)475 void FEDrawingOptions::OnNMCustomdrawSliderFeresolution(NMHDR *pNMHDR, LRESULT *pResult)
476 {
477 LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
478
479 UpdateData(TRUE);
480 m_solidFE_resolution_text = m_solidFE_resolution;
481 UpdateData(FALSE);
482
483 *pResult = 0;
484 }
485
486
OnCbnSelchangeComboFieldVariableType()487 void FEDrawingOptions::OnCbnSelchangeComboFieldVariableType()
488 {
489 UpdateData(TRUE);
490 UpdateData(FALSE);
491 }
492
OnBnClickedCheckAutoAdjustRange()493 void FEDrawingOptions::OnBnClickedCheckAutoAdjustRange()
494 {
495 UpdateData(TRUE);
496 GetDlgItem(IDC_BUTTON_ADJUST_RANGE)->EnableWindow(!m_check_auto_adjust_range);
497 m_check_auto_adjust_range = pWCDI->GetIOption(102);
498 }
499
OnBnClickedButtonAdjustRange()500 void FEDrawingOptions::OnBnClickedButtonAdjustRange()
501 {
502 pWCDI->SetIOption(102, 1);
503 pGLDrawWnd->Redraw();
504 pWCDI->SetIOption(102, 0);
505 }
506