COLOR.H
上传用户:abcdshs
上传日期:2007-01-07
资源大小:1858k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. // (C) Copyright 1996 by Anthony J. Carin.  All Rights Reserved.
  2. #ifndef COLOR_H
  3. #define COLOR_H
  4. #include <windef.h>
  5. typedef unsigned int uint;
  6. typedef unsigned short ushort;
  7. typedef unsigned long ulong;
  8. typedef unsigned char uchar;
  9. class tccolor
  10. {
  11. public:
  12.                 tccolor()              { val = 0; }
  13.                 tccolor(COLORREF c)    { val = c; }
  14.                 tccolor(tccolor &c)    { val = c.val; }
  15.                 operator COLORREF()    { return val; }
  16.        void     operator =(COLORREF c) { val = c; }
  17.        float    rvalue()               { return (float) GetRValue(val)/255.0f; }
  18.        float    gvalue()               { return (float) GetGValue(val)/255.0f; }
  19.        float    bvalue()               { return (float) GetBValue(val)/255.0f; }
  20. friend COLORREF operator +(tccolor& c, uchar v);
  21. friend COLORREF operator -(tccolor& c, uchar v);
  22. private:
  23. COLORREF val;
  24. };
  25. inline COLORREF operator +(tccolor& c, uchar v)
  26. {
  27.     return RGB((((GetRValue(c.val)+v))<256) ? ((GetRValue(c.val))+v):255,
  28.                (((GetGValue(c.val)+v))<256) ? ((GetGValue(c.val))+v):255,
  29.                (((GetBValue(c.val)+v))<256) ? ((GetBValue(c.val))+v):255);
  30. }
  31. inline COLORREF operator -(tccolor& c, uchar v)
  32. {
  33.     return RGB((((GetRValue(c.val)-v))>=0) ? ((GetRValue(c.val))-v):0,
  34.                (((GetGValue(c.val)-v))>=0) ? ((GetGValue(c.val))-v):0,
  35.                (((GetBValue(c.val)-v))>=0) ? ((GetBValue(c.val))-v):0);
  36. }
  37. #endif