ColorPickDialog.cpp
上传用户:kssdz899
上传日期:2007-01-08
资源大小:79k
文件大小:3k
源码类别:

钩子与API截获

开发平台:

Visual C++

  1. // ColourPickDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ColorPickDialog.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CColorPickDlg dialog
  12. CColorPickDlg::CColorPickDlg(COLORREF& colorTxt, COLORREF& colorBk, CWnd* pParent /*=NULL*/)
  13.     : CDialog(CColorPickDlg::IDD, pParent), m_ColorTxt(colorTxt), m_ColorBk(colorBk)
  14. {
  15.     //{{AFX_DATA_INIT(CColorPickDlg)
  16. m_nMode = 1;
  17. //}}AFX_DATA_INIT
  18.     m_crColour = m_ColorBk;
  19. m_ColourBox.SetTextColour(m_ColorTxt);
  20. m_ColourBox.SetBkColour(m_ColorBk);
  21. }
  22. void CColorPickDlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24.     CDialog::DoDataExchange(pDX);
  25.     //{{AFX_DATA_MAP(CColorPickDlg)
  26.     DDX_Control(pDX, IDC_COLOURPICKER, m_ColourBox);
  27. DDX_Radio(pDX, IDC_MODE1, m_nMode);
  28. //}}AFX_DATA_MAP
  29.     DDX_ColourPicker(pDX, IDC_COLOURPICKER, m_crColour);
  30. }
  31. BEGIN_MESSAGE_MAP(CColorPickDlg, CDialog)
  32.     //{{AFX_MSG_MAP(CColorPickDlg)
  33. ON_BN_CLICKED(IDC_MODE1, OnModeChange)
  34. //}}AFX_MSG_MAP
  35.     ON_MESSAGE(CPN_SELENDOK,     OnSelEndOK)
  36.     ON_MESSAGE(CPN_SELENDCANCEL, OnSelEndCancel)
  37.     ON_MESSAGE(CPN_SELCHANGE,    OnSelChange)
  38.     ON_MESSAGE(CPN_CLOSEUP,      OnCloseUp)
  39.     ON_MESSAGE(CPN_DROPDOWN,     OnDropDown)
  40. END_MESSAGE_MAP()
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CColorPickDlg message handlers
  43. BOOL CColorPickDlg::OnInitDialog()
  44. {
  45.     CDialog::OnInitDialog();
  46. UpdateData(FALSE);
  47. OnModeChange();
  48. OnTrackColour();
  49.     return TRUE;                // return TRUE  unless you set the focus to a control
  50. }
  51. /////////////////////////////////////////////////////////////////////////////
  52. // CColourPicker message handlers
  53. LONG CColorPickDlg::OnSelEndOK(UINT /*lParam*/, LONG /*wParam*/)
  54. {
  55. UpdateData(TRUE); 
  56.     TRACE0("Selection ended OKn");
  57. if (m_nMode)
  58. m_ColorBk = m_crColour;
  59. else
  60. m_ColorTxt = m_crColour;
  61.     return TRUE;
  62. }
  63. LONG CColorPickDlg::OnSelEndCancel(UINT /*lParam*/, LONG /*wParam*/)
  64. {
  65.     TRACE0("Selection cancelledn");
  66.     return TRUE;
  67. }
  68. LONG CColorPickDlg::OnSelChange(UINT /*lParam*/, LONG /*wParam*/)
  69. {
  70.     TRACE0("Selection changedn");
  71.     return TRUE;
  72. }
  73. LONG CColorPickDlg::OnCloseUp(UINT /*lParam*/, LONG /*wParam*/)
  74. {
  75.     TRACE0("Colour picker close upn");
  76.     return TRUE;
  77. }
  78. LONG CColorPickDlg::OnDropDown(UINT /*lParam*/, LONG /*wParam*/)
  79. {
  80.     TRACE0("Colour picker drop downn");
  81.     return TRUE;
  82. }
  83. void CColorPickDlg::OnModeChange() 
  84. {
  85. UpdateData(TRUE); 
  86. m_ColourBox.SetSelectionMode(m_nMode ? CP_MODE_BK : CP_MODE_TEXT);
  87. }
  88. void CColorPickDlg::OnTrackColour() 
  89. {
  90. UpdateData(TRUE); 
  91. m_ColourBox.SetTrackSelection();
  92. }
  93. void CColorPickDlg::OnDisable() 
  94. {
  95. UpdateData(TRUE); 
  96.     m_ColourBox.Invalidate();
  97. }
  98. void CColorPickDlg::OnChangeEdit() 
  99. {
  100.     CString str;
  101.     m_ColourBox.SetDefaultText(str);
  102.     m_ColourBox.SetCustomText(str);
  103. }