Tools.h
上传用户:czfddz
上传日期:2013-03-20
资源大小:1517k
文件大小:3k
源码类别:

酒店行业

开发平台:

C/C++

  1. /*########################################################################
  2. Filename:  tools.h
  3. ----------------------------------------------------
  4. Remarks: ...
  5. ----------------------------------------------------
  6.   ########################################################################*/
  7. #if !defined(_ANYOU_COOLTOOLS_H)
  8. #define _ANYOU_COOLTOOLS_H
  9. #if _MSC_VER > 1000
  10. #pragma once
  11. #endif
  12. #define WM_UPDATEVIEW (WM_USER + 139)
  13. #define UnKnowWindowsVer 0x00000000
  14. #define Windows32s 0x00000001
  15. #define Windows95 0x00000E02
  16. #define Windows98 0x00000E03
  17. #define WindowsME 0x00000E04
  18. #define WindowsNT3 0x000E0005
  19. #define WindowsNT4 0x000E0006
  20. #define Windows2000 0x000E0007
  21. #define WindowsXP 0x000E0008
  22. #define Windows2003 0x000E0009
  23. #define Windows2004 0x000E000A
  24. DWORD WINAPI GetWinVersion();
  25. COLORREF WINAPI AlphaBlendColor(COLORREF color, BYTE byAlpha);
  26. #if !defined(WS_EX_LAYERED)
  27. #define WS_EX_LAYERED 0x00080000
  28. #define LWA_COLORKEY        0x00000001
  29. #define LWA_ALPHA 0x00000002
  30. #endif
  31. BOOL SetLayeredWindow(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
  32. #ifndef SPI_GETDROPSHADOW
  33. #define SPI_GETDROPSHADOW   0x1024
  34. #endif
  35. BOOL WINAPI IsShadowEnabled();
  36. HBITMAP WINAPI GetScreenBitmap(LPCRECT pRect);
  37. BOOL WINAPI IsOwnerDrawMenu(HMENU hMenu);
  38. HBITMAP WINAPI CreateImage(HBITMAP hbitmap, int nstyle, BOOL bAlpha, COLORREF crBackColor, COLORREF crMarkColor, BOOL bFillMarkColor = TRUE);
  39. void FillGradient(CDC *pDC, CRect rect, const COLORREF& StartColor, const COLORREF& EndColor, BOOL bHor = FALSE);
  40. void DrawShadow(CDC *pDC, CRect rect);
  41. CString GetExFileName(CString strPathName);
  42. CString GetFileName(CString strPathName);
  43. CString GetPathText(CString strPathName);
  44. /*####################################################################
  45. ------------------------------------------------
  46.    CMemDC class
  47. ------------------------------------------------
  48.   ####################################################################*/
  49. class CMemDC : public CDC 
  50. {
  51. private:
  52. CBitmap* m_bitmap;
  53. CBitmap* m_oldBitmap;
  54. CDC* m_pDC;
  55. CRect m_rcBounds;
  56. public:
  57. CMemDC(CDC* pDC, const CRect& rcBounds= NULL) : CDC()
  58. {
  59. CreateCompatibleDC(pDC);
  60. m_bitmap = new CBitmap;
  61. m_bitmap->CreateCompatibleBitmap(pDC, rcBounds.Width(), rcBounds.Height());
  62. m_oldBitmap = SelectObject(m_bitmap);
  63. m_pDC = pDC;
  64. m_rcBounds = rcBounds;
  65.         //For some reason the background color is not correct,
  66.         //so we use the button face color.
  67.         DWORD color = ::GetSysColor(COLOR_BTNFACE);
  68.         CBrush bkg(color);
  69.         FillRect(rcBounds, &bkg);
  70. }
  71. ~CMemDC() 
  72. {
  73. m_pDC->BitBlt(m_rcBounds.left, m_rcBounds.top, m_rcBounds.Width(), m_rcBounds.Height(), 
  74. this, 0, 0, SRCCOPY);
  75. SelectObject(m_oldBitmap);
  76. if (m_bitmap != NULL) delete m_bitmap;
  77. }
  78. CMemDC* operator->() 
  79. {
  80. return this;
  81. }
  82. };
  83. #endif // !defined(_ANYOU_COOLTOOLS_H)