SingleLineCaption.h
上传用户:zhoushen
上传日期:2022-06-15
资源大小:84k
文件大小:2k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. #ifndef _SINGLELINECAPTION_H
  2. #define _SINGLELINECAPTION_H
  3. ////////////////////////////////////////////////////////////////
  4. //
  5. // class CSingleLineCaption
  6. //
  7. // Generic caption painter. Handles WM_NCPAINT, WM_NCACTIVATE, etc. to
  8. // handle drawing custom captions. To use it:
  9. //
  10. // - call Install from your frame's OnCreate function. 
  11. // - Set a custom CaptionBackground if desired
  12. // - Set custom TextAttributes if required
  13. //
  14. //  Derive from this class for custom single line caption layouts.
  15. // 
  16. //   If you are drawing custom caption buttons, you must handle WM_NCLBUTTONDOWN & co.
  17. //   yourself. CSingleLineCaption does not handle the mouse for custom caption buttons. 
  18. //
  19. // Author: Dave Lorde (dlorde@cix.compulink.co.uk)
  20. //
  21. //          Copyright January 2000
  22. //
  23. // - based on a 1997 Microsoft Systems Journal
  24. //            C++ Q&A article by Paul DiLascia. 
  25. //
  26. ////////////////////////////////////////////////////////////////
  27. //
  28. #include "Caption.h"
  29. // forward declarations
  30. class CCaptionBackground;
  31. class CCaptionTextAttributes;
  32. class AFX_EXT_CLASS CSingleLineCaption : public CCaption 
  33. {
  34. public:
  35.   CSingleLineCaption();
  36. BOOL Install(CWnd* pWnd);
  37. void SetIcon(HICON hIcon = 0);  // For dialogs
  38. protected:
  39. HICON m_hIcon;
  40. DECLARE_DYNAMIC(CSingleLineCaption);
  41. // Helpers
  42. //
  43. int GetIconWidth();
  44. // Override these in derived classes if necessary
  45. //
  46. virtual int PaintIcon(CDC* pDC = 0);
  47. // Paul DiLascia says:
  48. // "These are similar to, but NOT the same as the equivalent CWnd fns. Don't
  49. // override unless you're a guru, and even THEN I wouldn't recommend it."
  50. virtual LRESULT WindowProc (UINT msg, WPARAM wp, LPARAM lp);
  51. virtual BOOL OnNcActivate (BOOL bActive);
  52. };
  53. #endif