00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _RM_MFC_UTILITIES_COLOR_WHEEL_H_
00014 #define _RM_MFC_UTILITIES_COLOR_WHEEL_H_
00015
00016 #include <MFCUtilities/RmMFCTypes.h>
00017
00018
00019
00020
00021
00022
00023
00024
00025 class RMMFCUTIL_API CRmColorWheel : public CWnd
00026 {
00027 public:
00028
00029
00030 CRmColorWheel();
00031
00032
00033 virtual ~CRmColorWheel();
00034
00035
00036
00037
00038
00039 protected:
00040
00041 POINT MapColorToPosition( float r, float g, float b, int radius );
00042 void MapPositionToColor( int x, int y, int radius,
00043 float *r, float *g, float *b );
00044
00045 void HSVtoRGB( float *r, float *g, float *b,
00046 float h, float s, float v );
00047
00048 void SetColorFromPoint( CPoint *pPoint );
00049
00050
00051 afx_msg void OnPaint();
00052 afx_msg void OnMouseMove(UINT nFlags, CPoint point);
00053 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
00054 afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
00055 afx_msg LRESULT OnColorChanged( WPARAM wParam, LPARAM lParam );
00056 afx_msg void OnCaptureChanged(CWnd *pWnd);
00057
00058
00059 DECLARE_MESSAGE_MAP()
00060
00061 public:
00062
00063 float *m_pfColorArray;
00064
00065 private:
00066
00067 bool m_bLButtonDown;
00068 CPoint m_point;
00069 int m_nChangeMessageIndex;
00070
00071 };
00072
00073 #endif // !#define RMMFC_CCOLORWHEEL_DEFINE