SymbolEdit.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /************************************************************************/
  2. /* Created by MARIUS BANCILA
  3. /* www.mariusbancila.ro
  4. /* Copyright (C) 2008 MARIUS BANCILA. All rights reserved.
  5. /*
  6. /* Permission is given by the author to freely redistribute and
  7. /* include this code in any program as long as this credit is
  8. /* given where due.
  9. /*
  10. /* CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
  11. /* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
  12. /* INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE CODE
  13. /* IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
  14. /* OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
  15. /* PERFORMANCE OF THE CODE IS WITH YOU. SHOULD ANY
  16. /* CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
  17. /* DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
  18. /* NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
  19. /* WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE
  20. /* OF ANY CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
  21. /* THIS DISCLAIMER.
  22. /*
  23. /************************************************************************/
  24. #pragma once
  25. #include "GdiImageDrawer.h"
  26. // CSymbolEdit
  27. class CSymbolEdit : public CEdit
  28. {
  29. DECLARE_DYNAMIC(CSymbolEdit)
  30. CFont m_fontPrompt;
  31. HICON m_hSymbolIcon;
  32. bool m_bInternalIcon;
  33. CString m_strPromptText;
  34. COLORREF m_colorPromptText;
  35. void DestroyIcon();
  36. public:
  37. CSymbolEdit();
  38. virtual ~CSymbolEdit();
  39. virtual BOOL PreTranslateMessage(MSG* pMsg);
  40. void SetSymbolIcon(HICON hIcon, BOOL redraw = TRUE);
  41. void SetSymbolIcon(UINT id, BOOL redraw = TRUE);
  42. void SetPromptText(CString text, BOOL redraw = TRUE);
  43. void SetPromptText(LPCTSTR szText, BOOL redraw = TRUE);
  44. void SetPromptTextColor(COLORREF color, BOOL redraw = TRUE);
  45. void SetPromptFont(CFont& font, BOOL redraw = TRUE);
  46. void SetPromptFont(const LOGFONT* lpLogFont, BOOL redraw = TRUE);
  47. protected:
  48. COLORREF m_editFocusColor;
  49. COLORREF m_editNonFocusColor;
  50. CBrush m_editFocusBrush;
  51. CBrush m_editNonFocusBrush;
  52. //CGdiImageDrawer m_searchButton;
  53. CGdiImageDrawer m_closeButton;
  54. void RecalcLayout();
  55. virtual void PreSubclassWindow();
  56. afx_msg void OnSize(UINT nType, int cx, int cy);
  57. afx_msg LRESULT OnSetFont(WPARAM wParam, LPARAM lParam);
  58. afx_msg HBRUSH CtlColor(CDC* pDC, UINT n);
  59. afx_msg void OnSetFocus(CWnd* pOldWnd);
  60. afx_msg void OnKillFocus(CWnd* pNewWnd);
  61. DECLARE_MESSAGE_MAP()
  62. public:
  63. afx_msg void OnPaint();
  64. };