CursorSheetDlg.cpp
Upload User: kairuinn
Upload Date: 2009-02-07
Package Size: 2922k
Code Size: 3k
Category:

Graph program

Development Platform:

Visual C++

  1. // CursorSheetDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "..//Solidgraph.h"
  5. #include "CursorSheetDlg.h"
  6. #include ".cursorsheetdlg.h"
  7. // CCursorSheetDlg dialog
  8. IMPLEMENT_DYNAMIC(CCursorSheetDlg, CDialog)
  9. CCursorSheetDlg::CCursorSheetDlg(CCursorer* crsrr, CWnd* pParent /*=NULL*/)
  10. : CDialog(CCursorSheetDlg::IDD, pParent)
  11. , m_cur_type(FALSE)
  12. , m_cursorer(crsrr)
  13. {
  14. }
  15. CCursorSheetDlg::~CCursorSheetDlg()
  16. {
  17. }
  18. void CCursorSheetDlg::DoDataExchange(CDataExchange* pDX)
  19. {
  20. CDialog::DoDataExchange(pDX);
  21. DDX_Control(pDX, IDC_CURSOR_SIZE_COMBO, m_size_combo);
  22. DDX_Radio(pDX, IDC_CURSOR_TYPE_RADIO1, m_cur_type);
  23. DDX_Control(pDX, IDC_CURSOR_IN_COL, m_in_color);
  24. DDX_Control(pDX, IDC_CURSOR_OUT_COL, m_out_col);
  25. }
  26. BEGIN_MESSAGE_MAP(CCursorSheetDlg, CDialog)
  27. ON_BN_CLICKED(IDC_CURSOR_TYPE_RADIO1, OnBnClickedCursorTypeRadio1)
  28. ON_BN_CLICKED(IDC_CURSOR_TYPE_RADIO2, OnBnClickedCursorTypeRadio2)
  29. ON_CBN_SELCHANGE(IDC_CURSOR_SIZE_COMBO, OnCbnSelchangeCursorSizeCombo)
  30. ON_CBN_SELCHANGE(IDC_CURSOR_OUT_COL, OnCbnSelchangeCursorOutCol)
  31. ON_CBN_SELCHANGE(IDC_CURSOR_IN_COL, OnCbnSelchangeCursorInCol)
  32. ON_WM_PAINT()
  33. END_MESSAGE_MAP()
  34. // CCursorSheetDlg message handlers
  35. BOOL CCursorSheetDlg::OnInitDialog()
  36. {
  37. CDialog::OnInitDialog();
  38. CRect rrr;
  39. m_size_combo.GetWindowRect(rrr);
  40. m_in_color.SetItemHeight(-1,rrr.Height()-6);
  41. m_in_color.InitializeDefaultColors();
  42. m_out_col.SetItemHeight(-1,rrr.Height()-6);
  43. m_out_col.InitializeDefaultColors();
  44. for (int i=2;i<15;i++)
  45. {
  46. CString sss;
  47. sss.Format("%i",i);
  48. m_size_combo.AddString(sss);
  49. }
  50. return TRUE;  // return TRUE unless you set the focus to a control
  51. // EXCEPTION: OCX Property Pages should return FALSE
  52. }
  53. void CCursorSheetDlg::OnCancel()
  54. {
  55. }
  56. void CCursorSheetDlg::OnOK()
  57. {
  58. }
  59. void CCursorSheetDlg::OnBnClickedCursorTypeRadio1()
  60. {
  61. m_cur_type = FALSE;
  62. CRect rrr;
  63. GetDlgItem(IDC_CURSOR_PREVIEW)->GetWindowRect(rrr);
  64. ScreenToClient(rrr);
  65. InvalidateRect(rrr,FALSE);
  66. }
  67. void CCursorSheetDlg::OnBnClickedCursorTypeRadio2()
  68. {
  69. m_cur_type = TRUE;
  70. CRect rrr;
  71. GetDlgItem(IDC_CURSOR_PREVIEW)->GetWindowRect(rrr);
  72. ScreenToClient(rrr);
  73. InvalidateRect(rrr,FALSE);
  74. }
  75. void CCursorSheetDlg::OnCbnSelchangeCursorSizeCombo()
  76. {
  77. CRect rrr;
  78. GetDlgItem(IDC_CURSOR_PREVIEW)->GetWindowRect(rrr);
  79. ScreenToClient(rrr);
  80. InvalidateRect(rrr,FALSE);
  81. }
  82. void CCursorSheetDlg::OnCbnSelchangeCursorOutCol()
  83. {
  84. // TODO: Add your control notification handler code here
  85. }
  86. void CCursorSheetDlg::OnCbnSelchangeCursorInCol()
  87. {
  88. // TODO: Add your control notification handler code here
  89. }
  90. void CCursorSheetDlg::OnPaint()
  91. {
  92. CPaintDC dc(this); // device context for painting
  93. CRect rrr;
  94. GetDlgItem(IDC_CURSOR_PREVIEW)->GetWindowRect(rrr);
  95. ScreenToClient(rrr);
  96. dc.FillSolidRect(rrr,GetSysColor(COLOR_BTNSHADOW));
  97. short cenX = (short)(rrr.left+rrr.Width()/2);
  98. short cenY = (short)(rrr.top+rrr.Height()/2);
  99. short rad = (short)(m_size_combo.GetCurSel()+5);
  100. if (!m_cur_type)
  101. {
  102. dc.Ellipse(cenX-rad,cenY-rad,cenX+rad+1,cenY+rad+1);
  103. }
  104. else
  105. {
  106. dc.Rectangle(cenX-rad,cenY-rad,cenX+rad+1,cenY+rad+1);
  107. }
  108. dc.SetPixel(cenX,cenY,RGB(0,0,0));
  109. }