ResizableGrip.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. // ResizableGrip.h: interface for the CResizableGrip class.
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. //
  5. // Copyright (C) 2000-2002 by Paolo Messina
  6. // (http://www.geocities.com/ppescher - ppescher@yahoo.com)
  7. //
  8. // The contents of this file are subject to the Artistic License (the "License").
  9. // You may not use this file except in compliance with the License. 
  10. // You may obtain a copy of the License at:
  11. // http://www.opensource.org/licenses/artistic-license.html
  12. //
  13. // If you find this code useful, credits would be nice!
  14. //
  15. /////////////////////////////////////////////////////////////////////////////
  16. #if !defined(AFX_RESIZABLEGRIP_H__INCLUDED_)
  17. #define AFX_RESIZABLEGRIP_H__INCLUDED_
  18. #if _MSC_VER > 1000
  19. #pragma once
  20. #endif // _MSC_VER > 1000
  21. class CResizableGrip  
  22. {
  23. private:
  24. class CSizeGrip : public CScrollBar
  25. {
  26. public:
  27. CSizeGrip()
  28. {
  29. m_bTransparent = FALSE;
  30. m_bTriangular = FALSE;
  31. m_size.cx = 0;
  32. m_size.cy = 0;
  33. }
  34. void SetTriangularShape(BOOL bEnable);
  35. void SetTransparency(BOOL bActivate);
  36. BOOL IsRTL(); // right-to-left layout support
  37. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  38. SIZE m_size; // holds grip size
  39. protected:
  40. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  41. BOOL m_bTriangular; // triangular shape active
  42. BOOL m_bTransparent; // transparency active
  43. // memory DCs and bitmaps for transparent grip
  44. CDC m_dcGrip, m_dcMask;
  45. CBitmap m_bmGrip, m_bmMask;
  46. };
  47. CSizeGrip m_wndGrip; // grip control
  48. int m_nShowCount; // support for hiding the grip
  49. protected:
  50. // create a size grip, with options
  51. BOOL CreateSizeGrip(BOOL bVisible = TRUE,
  52. BOOL bTriangular = TRUE, BOOL bTransparent = FALSE);
  53. BOOL IsSizeGripVisible(); // TRUE if grip is set to be visible
  54. void SetSizeGripVisibility(BOOL bVisible); // set default visibility
  55. void UpdateSizeGrip(); // update the grip's visibility and position
  56. void ShowSizeGrip(DWORD* pStatus, DWORD dwMask = 1); // temp show the size grip
  57. void HideSizeGrip(DWORD* pStatus, DWORD dwMask = 1); // temp hide the size grip
  58. BOOL SetSizeGripBkMode(int nBkMode); // like CDC::SetBkMode
  59. void SetSizeGripShape(BOOL bTriangular);
  60. virtual CWnd* GetResizableWnd() = 0;
  61. public:
  62. CResizableGrip();
  63. virtual ~CResizableGrip();
  64. };
  65. #endif // !defined(AFX_RESIZABLEGRIP_H__INCLUDED_)