SkinWin.h
上传用户:vipseo
上传日期:2010-02-15
资源大小:137k
文件大小:4k
源码类别:

组合框控件

开发平台:

Visual C++

  1. // SkinWin.h: interface for the CSkinWin class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SKINWIN_H__F010D322_E34F_4F9E_87E8_E76E9611942D__INCLUDED_)
  5. #define AFX_SKINWIN_H__F010D322_E34F_4F9E_87E8_E76E9611942D__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "MyBitmap.h"
  10. #include "Subclass.h"
  11. class CSkinWin  : public CSubclassWnd
  12. {
  13. public:
  14. CString m_title;
  15. CString m_strSkinFile; //skin definition file
  16. CMyBitmap m_bmpTitle; //contains two bitmap;
  17. CMyBitmap m_bmpLeft;
  18. CMyBitmap m_bmpRight;
  19. CMyBitmap m_bmpBottom;
  20. CMyBitmap m_bmpMenubg;
  21. CMyBitmap m_bmpDlg;
  22. UINT m_oldHitTest;
  23. UINT m_moveHitTest;
  24. UINT m_downHitTest;
  25. //offset in the bmp
  26. int m_titleoff1, m_titleoff2;
  27. int m_leftoff1, m_leftoff2;
  28. int m_rightoff1, m_rightoff2;
  29. int m_bottomoff1, m_bottomoff2;
  30. CMyBitmap m_bmpMinBtn;
  31. CMyBitmap m_bmpMaxBtn;
  32. CMyBitmap m_bmpCloseBtn;
  33. CMyBitmap m_bmpRestoreBtn;
  34. CRect m_rectMinBtn;
  35. CRect m_rectMaxBtn;
  36. CRect m_rectCloseBtn;
  37. CRect m_rectRestoreBtn;
  38. CRect m_rectRestoreWin;
  39. int m_winstate; //0 for normal, 1 for max, 2 for min
  40. int m_oldwinstate; //save state before min
  41. BOOL m_sizable;
  42. BOOL m_minable;
  43. BOOL m_maxable;
  44. BOOL m_sysmenu;
  45. int m_TitleHeight;
  46. int m_BorderLeftWidth;
  47. int m_BorderRightWidth;
  48. int m_BorderBottomHeight;
  49. int m_textShift, m_textShiftVer;
  50. COLORREF m_colTitle1, m_colTitle2;
  51. COLORREF m_colTrans;
  52. COLORREF m_barcolor;
  53. COLORREF m_menucolor;
  54. COLORREF m_btnbgcolor, m_btntextcolor, m_btnhovercolor, m_btnfocuscolor;
  55. BOOL m_bTrans;
  56. BOOL m_bInit;
  57. BOOL m_bActive;
  58. public:
  59. BOOL IsInited()
  60. {
  61. return m_bInit;
  62. }
  63. BOOL HandleSysCommand(WPARAM wp, LPARAM lp);
  64. BOOL PopupSysMenu(CPoint point);
  65. void OnSysCommand(UINT nID, LPARAM lParam );
  66. BOOL Restore();
  67. BOOL Minimize();
  68. BOOL Maximize();
  69. LRESULT OnSetText( WPARAM wp, LPARAM lp );
  70. void OnActivate(UINT nState,CWnd* pWndOther, BOOL bMinimized );
  71. CRect GetMaximizeRect();
  72. BOOL OnEraseBkgnd( CDC *pDC);
  73. void OnSizing( UINT nSide, LPRECT lpRect);
  74. void OnWindowPosChanging( WINDOWPOS* lpwndpos );
  75. void OnGetMinMaxInfo( MINMAXINFO* lpMMI );
  76. BOOL DrawButton( CDC * pDC, int i, int state );
  77. CRect GetButtonRect( int i );
  78. void OnNcRButtonUp(   UINT nHitTest,   CPoint point);
  79. void OnNcRButtonDown(   UINT nHitTest, CPoint point );
  80. void OnNcMouseMove( UINT nHitTest, CPoint point );
  81. void OnNcLButtonUp( UINT nHitTest, CPoint point );
  82. void OnNcLButtonDown( UINT nHitTest, CPoint point );
  83. void OnNcLButtonDblClk( UINT nHitTest,  CPoint point );
  84. UINT OnNcHitTest( CPoint point );
  85. BOOL OnNcActivate( BOOL bActive );
  86. HRGN GetRegion( int w, int h);
  87. void OnSize(UINT nType, int cx, int cy );
  88. void OnNcCalcSize( BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
  89. void OnNcPaint( HRGN rgn );
  90. BOOL InstallSkin( CWnd * wnd );
  91. BOOL DrawFrame( CDC *pDC, int x, int y,int w, int h, int state, int title = 1 );
  92. BOOL DrawRight(CDC *pDC, int x, int y, int h, int state);
  93. BOOL DrawLeft(CDC *pDC, int x, int y, int h, int state);
  94. BOOL DrawBottom(CDC *pDC, int x, int y, int w, int state);
  95. BOOL DrawTitle( CDC *pDC, int x, int y, int w, int state );
  96. CSkinWin();
  97. CSkinWin( const char * skinfile )
  98. {
  99. CSkinWin();
  100. LoadSkin( skinfile );
  101. }
  102. virtual ~CSkinWin();
  103. //skinfile: full path name to skin inifile
  104. BOOL LoadSkin( const char * skinfile );
  105. //vitrual functions
  106. virtual LRESULT WindowProc(UINT msg, WPARAM wp, LPARAM lp);
  107. };
  108. #endif // !defined(AFX_SKINWIN_H__F010D322_E34F_4F9E_87E8_E76E9611942D__INCLUDED_)