00001
00002
00004 #include <commctrl.h>
00005
00006 #if !defined(AFX_LISTVIEW_H__E03DD901_8FF2_11D5_9AB9_00D04C390250__INCLUDED_)
00007 #define AFX_LISTVIEW_H__E03DD901_8FF2_11D5_9AB9_00D04C390250__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif // _MSC_VER > 1000
00012
00013
00014
00015
00016
00017 #include "MyControl.h"
00018 #include "MyList.h"
00019 #include "MyTree.h"
00020
00021 #define DEBUG_LISTVIEW // a masquer si l'on ne desire pas de debug
00022
00023 #include "ClientDebug.h"
00024
00025 class CMyListViewNotify
00026 {
00027 private:
00028 #ifdef DEBUG_LISTVIEW
00029 CMyString titleDebug,textDebug;
00030 CClientDebug debug;
00031 public:
00032 HWND hWnd;
00033 #endif
00034
00035 protected:
00036 virtual void OnColumnSizeChanged (int numColumn,int newSize);
00037 virtual void OnGetText (int line,int column,char *text);
00038 virtual void OnItemChanged (int line,int column);
00039 virtual void OnKeyDown (WORD vKey);
00040
00041 friend class CMyListView;
00042 };
00043
00044 class CMyListView : public CMyControl , public CMyListViewNotify
00045 {
00046 private:
00047 CMyListViewNotify *classNotify;
00048 int m_lineSelected;
00049 int m_columnSelected;
00050
00051 int oldColumn;
00052 int oldWidth;
00053 BOOL isRepaint ;
00054
00055 public:
00056 CMyListView (HWND hwndMaster,int x,int y,int xy,int dy,int optionalControlID=0);
00057 CMyListView (HWND hwndListView);
00058 CMyListView ();
00059 virtual ~CMyListView();
00060 void operator= (HWND hWndListView);
00061 void operator= (CMyListViewNotify *ptrClassNotify);
00062
00063 int GetLineSelected () {return m_lineSelected;}
00064 int GetColumnSelected () {return m_columnSelected;}
00065
00066 BOOL AddColumn (char *nameHead,int size);
00067 BOOL AddColumnPercent (char *nameHead,double percent);
00068 void SetNbCount (int nbCount);
00069 int GetNbCount () { return m_nbCount; }
00070 void IncCount () { SetNbCount(m_nbCount+1); }
00071 void DecCount () { SetNbCount(m_nbCount-1); }
00072
00073 void UnSelectedAll ();
00074 void SetLineSelected (int index,BOOL alwaysOneSelected=TRUE);
00075 void EnableLineSelected (int index,BOOL set);
00076
00077 BOOL IsLineSelected (int index);
00078 void SetHotItem (int index);
00079
00080 int GetColumnWidth (int index);
00081 BOOL SetColumn (long index,char *text);
00082
00083 void SetGridLinesView (BOOL active);
00084 BOOL SetImageList (HIMAGELIST hil);
00085
00086 BOOL GetFullRawSelect ();
00087 BOOL SetFullRawSelect (BOOL set);
00088
00089 int GetLinesSelected (CMyList<int> *lstSelect);
00090
00091 void SetLineHover (int newLine) { m_lineHover=newLine; }
00092 int GetLineHover () { return m_lineHover; }
00093 void SetColumnHover (int newLine) { m_columnHover=newLine; }
00094 int GetColumnHover () { return m_columnHover; }
00095
00096 BOOL Notify (LPARAM lParam,int *result);
00097
00098 BOOL SetItemHeight (int height);
00099 BOOL SetCheckBox (BOOL set);
00100 BOOL SetHeaderDragDrop (BOOL set);
00101 BOOL SetSubItemImages (BOOL set);
00102 BOOL SetTrackSelect (BOOL set);
00103
00104 HWND GetHeader ();
00105
00106 void SetHightLightColor (COLORREF textColor,COLORREF backgroundColor);
00107 void SetHightLightColorUnFocus (COLORREF textColor,COLORREF backgroundColor);
00108 void SetLineColor (COLORREF textColor,COLORREF backgroundColor);
00109
00110 void GetHightLightColor (COLORREF *textColor,COLORREF *backgroundColor);
00111 void GetHightLightColorUnFocus (COLORREF *textColor,COLORREF *backgroundColor);
00112 void GetLineColor (COLORREF *textColor,COLORREF *backgroundColor);
00113
00114 int GetControlID () { return m_controlID; }
00115
00116 void FirstCollumnAsTree (CMyTree *tree);
00117 void TreeColumnSizeChanged ();
00118
00119 CMyTree * m_tree;
00120
00121 private:
00122 void Init();
00123
00124 int m_nbCount;
00125 int m_nbColumn;
00126
00127 int m_lineHover;
00128 int m_columnHover;
00129
00130 COLORREF m_textColor;
00131 COLORREF m_backgroundColor;
00132 COLORREF m_textColorHi;
00133 COLORREF m_backgroundColorHi;
00134 COLORREF m_textColorHiUf;
00135 COLORREF m_backgroundColorHiUf;
00136
00137 int m_controlID;
00138 };
00139
00140 #endif // !defined(AFX_LISTVIEW_H__E03DD901_8FF2_11D5_9AB9_00D04C390250__INCLUDED_)