MyDialog.cpp
上传用户:easylife05
上传日期:2007-02-14
资源大小:393k
文件大小:5k
源码类别:

PlugIns编程

开发平台:

Visual C++

  1. // MyDialog.cpp : CMyDialog 的实现
  2. #include "stdafx.h"
  3. #include "MyDialog.h"
  4. // CMyDialog
  5. LRESULT CMyDialog::OnBnClickedButton1(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  6. {
  7. // TODO: 在此添加控件通知处理程序代码
  8. // Get a device context to draw on from the canvas.
  9. // Make a pen.
  10. BOOL m_bSelected=true;
  11. HPEN hPen = ::CreatePen(PS_SOLID, 6, m_bSelected ? RGB(255,250,0) : RGB(128,128,128)) ;
  12. HPEN hOldPen = (HPEN) ::SelectObject(m_hDC, hPen) ;
  13. // Make a brush.
  14. HBRUSH hOldBrush = (HBRUSH)::SelectObject(m_hDC, ::GetStockObject(m_bSelected ? NULL_BRUSH : LTGRAY_BRUSH)) ;
  15. // Draw the polygon.
  16. POINT pts[4];
  17. pts[0].x = 20;
  18. pts[0].y = 20;
  19. pts[1].x = 20;
  20. pts[1].y = 140;
  21. pts[2].x = 50;
  22. pts[2].y = 40;
  23. pts[3].x = 50;
  24. pts[3].y = 60;
  25. //::Polygon(hDC, m_ptVertices, m_cVertices) ;
  26. ::Polygon(m_hDC,pts,4);
  27. // CleanUp
  28. ::SelectObject(m_hDC, hOldPen) ;
  29. ::SelectObject(m_hDC, hOldBrush) ;
  30. ::DeleteObject(hPen) ;
  31. return 0;
  32. }
  33. LRESULT CMyDialog::OnBnClickedButton2(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  34. {
  35. // TODO: 在此添加控件通知处理程序代码
  36. // Get a device context to draw on from the canvas.
  37. // Make a pen.
  38. BOOL m_bSelected=true;
  39. HPEN hPen = ::CreatePen(PS_SOLID, 5, m_bSelected ? RGB(255,0,255) : RGB(128,128,128)) ;
  40. HPEN hOldPen = (HPEN) ::SelectObject(m_hDC, hPen) ;
  41. // Make a brush.
  42. HBRUSH hOldBrush = (HBRUSH)::SelectObject(m_hDC, ::GetStockObject(m_bSelected ? NULL_BRUSH : LTGRAY_BRUSH)) ;
  43. // Draw the polygon.
  44. POINT pts[4];
  45. pts[0].x = 100;
  46. pts[0].y = 220;
  47. pts[1].x = 220;
  48. pts[1].y = 140;
  49. pts[2].x = 150;
  50. pts[2].y = 140;
  51. pts[3].x = 150;
  52. pts[3].y = 160;
  53. //::Polygon(hDC, m_ptVertices, m_cVertices) ;
  54. ::Polygon(m_hDC,pts,4);
  55. // CleanUp
  56. ::SelectObject(m_hDC, hOldPen) ;
  57. ::SelectObject(m_hDC, hOldBrush) ;
  58. ::DeleteObject(hPen) ;
  59. return 0;
  60. return 0;
  61. }
  62. void CMyDialog::DrawTo(POINT Source, POINT Targe)
  63. {
  64. if (!m_bPaint) return;
  65. HPEN hPen = ::CreatePen(PS_SOLID, 6,RGB(255,0,0) ) ;
  66. HPEN hOldPen = (HPEN) ::SelectObject(m_hDC, hPen) ;
  67. // Make a brush.
  68. HBRUSH hOldBrush = (HBRUSH)::SelectObject(m_hDC, ::GetStockObject( NULL_BRUSH)) ;
  69. //::LineTo(m_hDC,Targe.x,Targe.y);
  70. //::Polygon(m_hDC,pts,4);
  71. POINT pts[2];
  72. pts[0].x=Source.x;
  73. pts[0].y=Source.y;
  74. pts[1].x=Targe.x;
  75. pts[1].y=Targe.y;
  76. ::Polyline(m_hDC,pts,2);
  77. //// CleanUp
  78. ::SelectObject(m_hDC, hOldPen) ;
  79. ::SelectObject(m_hDC, hOldBrush) ;
  80. ::DeleteObject(hPen) ;
  81. //return 0;
  82. }
  83. LRESULT CMyDialog::OnBnClickedChkpaint(WORD /*wNotifyCode*/, WORD wID, HWND hWndCtl, BOOL& bHandled)
  84. {
  85. // TODO: 在此添加控件通知处理程序代码
  86. // HWND hwndStatus =GetDlgItem(IDC_EDIT1);
  87. m_bPaint=::IsDlgButtonChecked(this->m_hWnd,wID);
  88. //m_bPaint=IsDlgButtonChecked(IDC_EDIT1);
  89. return 0;
  90. }
  91. LRESULT CMyDialog::OnBnClickedButcircle(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  92. {
  93. myGraph *mGraph;
  94. m_dlgServer->GetDataPoint(&m_Graph);
  95. mGraph=m_Graph;
  96. while (mGraph!=NULL)
  97. {
  98. HPEN hPen = ::CreatePen(PS_SOLID,mGraph->mWidth,RGB(mGraph->mRed,mGraph->mGreen,mGraph->mBlue) ) ;
  99. HPEN hOldPen = (HPEN) ::SelectObject(m_hDC, hPen) ;
  100. ::Ellipse(m_hDC,mGraph->x-20*mGraph->mRate, mGraph->y-20*mGraph->mRate,
  101. mGraph->x+20*mGraph->mRate,mGraph->y+20*mGraph->mRate);
  102. ::SelectObject(m_hDC,hOldPen);
  103. mGraph=mGraph->next;
  104. }
  105. return 0;
  106. }
  107. LRESULT CMyDialog::OnBnClickedCheck2(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  108. {
  109. // HWND hwndStatus =GetDlgItem(IDC_EDIT1);
  110. m_bCircle=::IsDlgButtonChecked(this->m_hWnd,wID);
  111. //m_bPaint=IsDlgButtonChecked(IDC_EDIT1);
  112. return 0;
  113. }
  114. LRESULT CMyDialog::OnBnClickedCheck3(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  115. {
  116. // TODO: 在此添加控件通知处理程序代码
  117. // HWND hwndStatus =GetDlgItem(IDC_EDIT1);
  118. //m_bPaint=IsDlgButtonChecked(IDC_EDIT1);
  119. m_bDraw=::IsDlgButtonChecked(this->m_hWnd,wID);
  120. return 0;
  121. }
  122. LRESULT CMyDialog::OnEnChangeEditrate(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  123. {
  124. // TODO:  在此添加控件通知处理程序代码
  125. int iRate;
  126. BOOL fError;
  127. iRate = ::GetDlgItemInt(this->m_hWnd, wID, 
  128.                         &fError, false); 
  129. if (fError)
  130. {
  131. m_Rate=iRate;
  132. }
  133. else
  134. {
  135. ::SetDlgItemInt(this->m_hWnd,wID,m_Rate,false);
  136. }
  137. return 0;
  138. }
  139. LRESULT CMyDialog::OnEnChangeEditwidth(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  140. {
  141. // TODO:  在此添加控件通知处理程序代码
  142. int iRate;
  143. BOOL fError;
  144. iRate = ::GetDlgItemInt(this->m_hWnd, wID, 
  145.                         &fError, false); 
  146. if (fError)
  147. {
  148. m_Width=iRate;
  149. }
  150. else
  151. {
  152. ::SetDlgItemInt(this->m_hWnd,wID,m_Width,false);
  153. }
  154. return 0;
  155. }
  156. LRESULT CMyDialog::OnBnClickedRed(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  157. {
  158. // TODO: 在此添加控件通知处理程序代码
  159. if(wID==IDC_RED)  {m_Red=255; m_Green=0;   m_Blue=0;}
  160. if(wID==IDC_GREEN){m_Red=0;   m_Green=255; m_Blue=0;}
  161. if(wID==IDC_BLUE) {m_Red=0;   m_Green=0;   m_Blue=255;}
  162. return 0;
  163. }