NewDialogTrigon.cpp
上传用户:ckg1000
上传日期:2013-01-26
资源大小:630k
文件大小:7k
源码类别:

CAD

开发平台:

Visual C++

  1. // NewDialogTrigon.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "CAD2006.h"
  5. #include "NewDialogTrigon.h"
  6. #include "Polygon.h"
  7. #include "line1.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. #include "NewDialogBar.h"
  14. #include "MainFrm.h"
  15. #include "CAD2006Doc.h"
  16. extern enum SHAPE;
  17. /////////////////////////////////////////////////////////////////////////////
  18. // NewDialogTrigon dialog
  19. NewDialogTrigon::NewDialogTrigon(CWnd* pParent /*=NULL*/)
  20. {
  21. //{{AFX_DATA_INIT(NewDialogTrigon)
  22. m_anglevalue = _T("");
  23. //}}AFX_DATA_INIT
  24. }
  25. void NewDialogTrigon::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialogBar::DoDataExchange(pDX);
  28. DDX_Control(pDX, IDC_COMBO_SHAPE, m_ComShape);
  29. DDX_Control(pDX, IDC_COMBO_MODE, m_ComMode);
  30. DDX_Control(pDX, IDC_COMBO_SIZE, m_ComSize);
  31. DDX_Control(pDX, IDC_COMBO_COLOR, m_ComCol);
  32. //{{AFX_DATA_MAP(NewDialogTrigon)
  33. DDX_Text(pDX, IDC_EDIT_ANGLE, m_anglevalue);
  34. //}}AFX_DATA_MAP
  35. }
  36. BEGIN_MESSAGE_MAP(NewDialogTrigon, CDialogBar)
  37. //{{AFX_MSG_MAP(NewDialogTrigon)
  38. ON_CBN_SELCHANGE(IDC_COMBO_SHAPE, OnSelchangeComboShape)
  39. ON_CBN_SELCHANGE(IDC_COMBO_MODE, OnSelchangeComboMode)
  40. ON_CBN_SELCHANGE(IDC_COMBO_SIZE, OnSelchangeComboSize)
  41. ON_CBN_SELCHANGE(IDC_COMBO_COLOR, OnSelchangeComboColor)
  42. ON_EN_CHANGE(IDC_EDIT_ANGLE, OnChangeEditAngle)
  43. //}}AFX_MSG_MAP
  44. END_MESSAGE_MAP()
  45. /////////////////////////////////////////////////////////////////////////////
  46. // NewDialogTrigon message handlers
  47. void NewDialogTrigon::InitDialogBar()
  48. {
  49. UpdateData(false);
  50. m_ComShape.AddString("直线");
  51. m_ComShape.AddString("折线");
  52. m_ComShape.AddString("角度线");
  53. m_ComShape.SetCurSel(2);
  54. m_ComMode.AddString("虚线");
  55. m_ComMode.AddString("实线");
  56. m_ComMode.AddString("点线");
  57. m_ComMode.AddString("交互线");
  58. m_ComMode.SetCurSel(2);
  59. CString strTemp;
  60. for( int i = 1; i < 8; i++ )
  61. {
  62. strTemp.Format("%d",i);
  63. m_ComSize.AddString(strTemp);
  64. }
  65. m_ComSize.SetCurSel(0);
  66. m_ComCol.AddString("黑色");
  67. m_ComCol.AddString("红色");
  68. m_ComCol.AddString("黄色");
  69. m_ComCol.AddString("自定义颜色");
  70. m_ComCol.SetCurSel(0);
  71. }
  72. void NewDialogTrigon::OnSelchangeComboShape()        //m_ComShape selected
  73. {
  74. // TODO: Add your control notification handler code here
  75. CButton *m_angle = (CButton *)GetDlgItem(IDC_EDIT_ANGLE);
  76. CMainFrame* MainFrame = (CMainFrame *)::AfxGetApp()->m_pMainWnd;
  77. CCAD2006Doc* pDoc = ( CCAD2006Doc* )MainFrame->GetActiveDocument();
  78. CString m_tool;
  79. m_ComShape.GetLBText(m_ComShape.GetCurSel(),m_tool);
  80. if( m_tool == "直线" )
  81. {
  82. pDoc->m_shape = line;
  83. m_angle->EnableWindow(false);
  84. }
  85. if( m_tool == "折线" )
  86. {
  87. pDoc->m_shape = linedown;
  88. m_angle->EnableWindow(false);
  89. }
  90. if( m_tool == "角度线" )
  91. {
  92. pDoc->m_shape = lineangle;
  93. m_angle->EnableWindow(true);
  94. }
  95. if( m_tool == "三角形" )
  96. {
  97. pDoc->m_shape = trigon;
  98. m_angle->EnableWindow(false);
  99. }
  100. if( m_tool == "圆" )
  101. {
  102. pDoc->m_shape = circle;
  103. m_angle->EnableWindow(false);
  104. }
  105. if( m_tool == "椭圆" )
  106. {
  107. pDoc->m_shape = ellipse;
  108. m_angle->EnableWindow(false);
  109. }
  110. if( m_tool == "圆弧" )
  111. {
  112. pDoc->m_shape = circlemater;
  113. m_angle->EnableWindow(false);
  114. }
  115. if( m_tool == "正方形" )
  116. {
  117. pDoc->m_shape = rect;
  118. m_angle->EnableWindow(false);
  119. }
  120. if( m_tool == "多边形" )
  121. {
  122. pDoc->m_shape = polygon;
  123. m_angle->EnableWindow(true);
  124. }
  125. if( m_tool == "字体" )
  126. {
  127. pDoc->m_shape = font;
  128. m_angle->EnableWindow(false);
  129. }
  130. }
  131. void NewDialogTrigon::OnSelchangeComboMode()            //m_ComMode selected
  132. {
  133. // TODO: Add your control notification handler code here
  134. CMainFrame* MainFrame = (CMainFrame *)::AfxGetApp()->m_pMainWnd;
  135. CCAD2006Doc* pDoc = ( CCAD2006Doc* )MainFrame->GetActiveDocument();
  136. CString m_style;
  137. m_ComMode.GetLBText(m_ComMode.GetCurSel(),m_style);
  138. if( m_style == "实线" )
  139. {
  140. MainFrame->m_style = realline;
  141. m_shape.SetBorderStyle(PS_SOLID);
  142. }
  143. if( m_style == "虚线" )
  144. {
  145. MainFrame->m_style = brokenline;
  146. m_shape.SetBorderStyle(PS_DASH);
  147. }
  148. if( m_style == "点线" )
  149. {
  150. MainFrame->m_style = dotline;
  151. m_shape.SetBorderStyle(PS_DOT);
  152. }
  153. if( m_style == "交互线" )
  154. {
  155. MainFrame->m_style = twoline;
  156. m_shape.SetBorderStyle(PS_DASHDOT);
  157. }
  158. }
  159. void NewDialogTrigon::OnSelchangeComboSize()            //m_ComSize selected
  160. {
  161. // TODO: Add your control notification handler code here
  162. CMainFrame* MainFrame = (CMainFrame *)::AfxGetApp()->m_pMainWnd;
  163. CString m_size;
  164. m_ComSize.GetLBText(m_ComSize.GetCurSel(),m_size);
  165. if( m_size == "1" )
  166. {
  167. MainFrame->m_linewidth = one;
  168. }
  169. if( m_size == "2" )
  170. {
  171. MainFrame->m_linewidth = two;
  172. }
  173. if( m_size == "3" )
  174. {
  175. MainFrame->m_linewidth = three;
  176. }
  177. if( m_size == "4" )
  178. {
  179. MainFrame->m_linewidth = four;
  180. }
  181. if( m_size == "5" )
  182. {
  183. MainFrame->m_linewidth = five;
  184. }
  185. if( m_size == "6" )
  186. {
  187. MainFrame->m_linewidth = six;
  188. }
  189. if( m_size == "7" )
  190. {
  191. MainFrame->m_linewidth = seven;
  192. }
  193. m_shape.SetBorderWidth(atoi(m_size.operator LPCTSTR()));
  194. }
  195. void NewDialogTrigon::OnSelchangeComboColor()           //m_ComColor selected
  196. {
  197. // TODO: Add your control notification handler code here
  198. CMainFrame* MainFrame = (CMainFrame *)::AfxGetApp()->m_pMainWnd;
  199. CLabelControl *m_forcol = (CLabelControl *)MainFrame->m_wndDialogBar.GetDlgItem(IDC_LABEL_FORBK);
  200. switch( m_ComCol.GetCurSel() )
  201. {
  202. case 0:
  203. {
  204. m_forcol->SetBackColor(RGB(0,0,0));
  205. break;
  206. }
  207. case 1:
  208. {
  209. m_forcol->SetBackColor(RGB(255,0,0));
  210. break;
  211. }
  212. case 2:
  213. {
  214. m_forcol->SetBackColor(RGB(255,255,0));
  215. break;
  216. }
  217. case 3:
  218. {
  219. CColorDialog m_fordlg;
  220. if( m_fordlg.DoModal() == IDOK )
  221. {
  222. m_forcol->SetBackColor(m_fordlg.GetColor());
  223. }
  224. break;
  225. }
  226. }
  227. }
  228. void NewDialogTrigon::OnChangeEditAngle() 
  229. {
  230. CMainFrame* MainFrame = (CMainFrame *)::AfxGetApp()->m_pMainWnd;
  231. CCAD2006Doc* pDoc = ( CCAD2006Doc* )MainFrame->GetActiveDocument();
  232. UpdateData(true);
  233. int temp = atoi(m_anglevalue.operator LPCTSTR());
  234. /* switch( pDoc->m_shape )
  235. {
  236. case polygon:
  237. {
  238. CPolygon polygon;
  239. polygon.SetSide(temp);
  240. break;
  241. }
  242. }*/
  243. if( pDoc->m_shape == polygon && pDoc->m_tool == tool )
  244. {
  245. CPolygon polygon;
  246. polygon.SetSide(temp);
  247. }
  248. if( pDoc->m_tool == eddy )
  249. {
  250. switch( pDoc->m_shape )
  251. {
  252. case polygon:
  253. {
  254. CPolygon polygon;
  255. polygon.SetAngle(temp);
  256. break;
  257. }
  258. case trigon:
  259. {
  260. CTrigon trigon;
  261. trigon.SetAngle(temp);
  262. break;
  263. }
  264. case line:
  265. {
  266. CLine line;
  267. line.SetAngle(temp);
  268. break;
  269. }
  270. }
  271. }
  272. // TODO: Add your control notification handler code here
  273. }