ContrastDlg.cpp
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:6k
源码类别:

图形图象

开发平台:

Visual C++

  1. /********************************************************************
  2. ContrastDlg.cpp - ISee图像浏览器—图像处理模块类ContrastDlg实现
  3. 代码文件
  4.     版权所有(C) VCHelp-coPathway-ISee workgroup 2000 all member's
  5.     这一程序是自由软件,你可以遵照自由软件基金会出版的GNU 通用许可证
  6. 条款来修改和重新发布这一程序。或者用许可证的第二版,或者(根据你
  7. 的选择)用任何更新的版本。
  8.     发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定
  9. 目地的隐含的担保。更详细的情况请参阅GNU通用许可证。
  10.     你应该已经和程序一起收到一份GNU通用许可证(GPL)的副本。如果还没有,
  11. 写信给:
  12.     The Free Software Foundation, Inc.,  675  Mass Ave,  Cambridge,
  13.     MA02139,  USA
  14. 如果你在使用本软件时有什么问题或建议,用以下地址可以与我们取得联
  15. 系:
  16. http://isee.126.com
  17. http://www.vchelp.net
  18. 或:
  19. iseesoft@china.com
  20. 作者:马翔
  21.    e-mail:hugesoft@yeah.net
  22.    功能实现:界面对话模框
  23. 文件版本:
  24. Build 000123
  25. Date  2000-12-3
  26. ********************************************************************/
  27. // ContrastDlg.cpp : implementation file
  28. //
  29. #include "stdafx.h"
  30. #include "flt_mass.h"
  31. #include "ContrastDlg.h"
  32. #include "DrawPreView.h"
  33. #include "draw.h"
  34. #include "Contrast.h"
  35. #include "AdjustContrast.h"
  36. #include "System.h"
  37. #ifdef _DEBUG
  38. #define new DEBUG_NEW
  39. #undef THIS_FILE
  40. static char THIS_FILE[] = __FILE__;
  41. #endif
  42. #define DELAYTIME 300
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CContrastDlg dialog
  45. CContrastDlg::CContrastDlg(CWnd* pParent /*=NULL*/)
  46. : CDialog(CContrastDlg::IDD, pParent)
  47. {
  48. //{{AFX_DATA_INIT(CContrastDlg)
  49. m_strBright = _T("100");
  50. m_strContrast = _T("100");
  51. //}}AFX_DATA_INIT
  52. }
  53. void CContrastDlg::DoDataExchange(CDataExchange* pDX)
  54. {
  55. CDialog::DoDataExchange(pDX);
  56. //{{AFX_DATA_MAP(CContrastDlg)
  57. DDX_Control(pDX, IDC_EDIT_CONTRAST, m_cContrast);
  58. DDX_Control(pDX, IDC_EDIT_BRIGHT, m_cBright);
  59. DDX_Text(pDX, IDC_EDIT_BRIGHT, m_strBright);
  60. DDV_MaxChars(pDX, m_strBright, 3);
  61. DDX_Text(pDX, IDC_EDIT_CONTRAST, m_strContrast);
  62. DDV_MaxChars(pDX, m_strContrast, 3);
  63. //}}AFX_DATA_MAP
  64. }
  65. BEGIN_MESSAGE_MAP(CContrastDlg, CDialog)
  66. //{{AFX_MSG_MAP(CContrastDlg)
  67. ON_EN_CHANGE(IDC_EDIT_BRIGHT, OnChangeEditBright)
  68. ON_EN_CHANGE(IDC_EDIT_CONTRAST, OnChangeEditContrast)
  69. ON_WM_DRAWITEM()
  70. ON_WM_MOUSEMOVE()
  71. ON_WM_TIMER()
  72. //}}AFX_MSG_MAP
  73. END_MESSAGE_MAP()
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CContrastDlg message handlers
  76. BOOL CContrastDlg::OnInitDialog() 
  77. {
  78. CDialog::OnInitDialog();
  79. // TODO: Add extra initialization here
  80. m_nBright=m_nContrast=100;
  81.  
  82. CreatMemImage(lpProcInfo);
  83. m_wndBrightBar.SubclassDlgItem(IDC_LINETRACKBRIGHT, this);
  84. m_wndBrightBar.InitControl(IDC_EDIT_BRIGHT,RGB(0,0,0),0, 100,200);
  85. m_wndContrastBar.SubclassDlgItem(IDC_LINETRACKCONTRAST, this);
  86. m_wndContrastBar.InitControl (IDC_EDIT_CONTRAST,RGB(0,0,0),0,100,200);
  87. InitDraw();
  88. m_wndLogo.SubclassDlgItem (IDC_LOGO_CONTRAST,this);
  89. m_wndLogo.SetLogoFont ("SIMSUN");
  90. m_wndLogo.SetLogoText ("iSee特效滤镜");
  91. return TRUE;  // return TRUE unless you set the focus to a control
  92.               // EXCEPTION: OCX Property Pages should return FALSE
  93. }
  94. void CContrastDlg::OnChangeEditContrast() 
  95. {
  96. // TODO: If this is a RICHEDIT control, the control will not
  97. // send this notification unless you override the CDialog::OnInitDialog()
  98. // function and call CRichEditCtrl().SetEventMask()
  99. // with the ENM_CHANGE flag ORed into the mask.
  100. // TODO: Add your control notification handler code here
  101. UpdateData();
  102. m_nContrast=atoi(m_strContrast);
  103. m_nContrast=atoi(m_strContrast);
  104. if(m_nContrast>200)
  105. {
  106. m_nContrast=200;
  107. }
  108. if(m_nBright>200)
  109. {
  110. m_nBright=200;
  111. }
  112. m_wndContrastBar.SetPos (m_nContrast);
  113. // if(GetFocus()==GetDlgItem(IDC_EDIT_CONTRAST))
  114. {
  115. KillTimer(1);
  116. SetTimer(1,DELAYTIME,NULL);
  117. }
  118. UpdateData(FALSE);
  119. }
  120. void CContrastDlg::OnChangeEditBright() 
  121. {
  122. // TODO: If this is a RICHEDIT control, the control will not
  123. // send this notification unless you override the CDialog::OnInitDialog()
  124. // function and call CRichEditCtrl().SetEventMask()
  125. // with the ENM_CHANGE flag ORed into the mask.
  126. // TODO: Add your control notification handler code here
  127. UpdateData();
  128. m_nBright=atoi(m_strBright);
  129. m_nContrast=atoi(m_strContrast);
  130. if(m_nContrast>200)
  131. {
  132. m_nContrast=200;
  133. }
  134. if(m_nBright>200)
  135. {
  136. m_nBright=200;
  137. }
  138. m_wndBrightBar.SetPos (m_nBright);
  139. // if(GetFocus()==GetDlgItem(IDC_EDIT_BRIGHT))
  140. {
  141. KillTimer(1);
  142. SetTimer(1,DELAYTIME,NULL);
  143. }
  144. UpdateData(FALSE);
  145. }
  146. void CContrastDlg::OnOK() 
  147. {
  148. // TODO: Add extra validation here
  149. KillTimer(1);
  150. BeginWaitCursor ();
  151. ClearPreView();
  152. if(m_nContrast>200)
  153. {
  154. m_nContrast=200;
  155. }
  156. if(m_nBright>200)
  157. {
  158. m_nBright=200;
  159. }
  160. CDialog::OnOK();
  161. _fnCOM_AdjustContrast(lpProcInfo,m_nBright-100,m_nContrast-100);
  162. EndWaitCursor ();
  163. }
  164. void CContrastDlg::OnCancel() 
  165. {
  166. // TODO: Add extra cleanup here
  167. KillTimer(1);
  168. ClearPreView();
  169. Del(lpProcInfo->_pdbdata );
  170. CDialog::OnCancel();
  171. }
  172. void CContrastDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) 
  173. {
  174. // TODO: Add your message handler code here and/or call default
  175. _fnCOM_DrawResizePrView(nIDCtl,lpDrawItemStruct);//(LPDRAWITEMSTRUCT)lpProcInfo);
  176. CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
  177. }
  178. void CContrastDlg::OnMouseMove(UINT nFlags, CPoint point) 
  179. {
  180. // TODO: Add your message handler code here and/or call default
  181. if(nFlags==MK_LBUTTON)
  182. {
  183. }
  184. CDialog::OnMouseMove(nFlags, point);
  185. }
  186. void CContrastDlg::OnTimer(UINT nIDEvent) 
  187. {
  188. // TODO: Add your message handler code here and/or call default
  189. _fnCOM_AdjustContrastPreView(m_nBright-100,m_nContrast-100);
  190. GetDlgItem (IDC_PRVIEW_CONTRAST)->InvalidateRect (NULL,TRUE);
  191. GetDlgItem (IDC_PRVIEW_CONTRAST)->UpdateWindow();
  192. switch(nIDEvent)
  193. {
  194. case 1:
  195. KillTimer(1);
  196. break;
  197. }
  198. CDialog::OnTimer(nIDEvent);
  199. }