当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 修改一个完全颜色的CListCtrl类
| 修改一个完全颜色的CListCtrl类 下载源代码 color.hcolor.cppColorListCtrl.hColorListCtrl.cpp 2、在对话框头文件中加入ColorListCtrl.h的说明,然后用CColorListCtrl代替CListCtrl声明成员变量。 // Author: SFr [email protected]#ifndef AFX_COLOR_H__9FC7D36B_FC88_42FD_8DAA_2F70016038BA__INCLUDED_#define AFX_COLOR_H__9FC7D36B_FC88_42FD_8DAA_2F70016038BA__INCLUDED_#include "windows.h"typedef enum { DEF_BACKGROUND=0, DEF_TEXT, DEF_SELBACKGROUND, DEF_SELTEXT, DEF_DESELBACKGROUND, DEF_DESELTEXT, BLACK,BLUE,GREEN,CYAN,RED, MANGENTA,YELLOW,WHITE,DARKBLUE,DARKGREEN, BLUEGREEN,BROWN,PURPUR,OLIV,DARKGRAY, LIGHTGRAY,LIGHTBLUE,DARKWHITE,MIDDLEGRAY}ITEM_COLOR;typedef struct { char str[50]; ITEM_COLOR col;}ColorList;#define COLLIST_MAX 25extern ColorList colList[COLLIST_MAX];COLORREF GetColorRef(ITEM_COLOR lParam);#endifcolor.cpp源代码如下所示:// Author: SFr [email protected]#include "stdafx.h"#include "color.h"ColorList colList[COLLIST_MAX]={ {"DEF_BACKGROUND",DEF_BACKGROUND}, {"DEF_TEXT",DEF_TEXT}, {"DEF_SELBACKGROUND",DEF_SELBACKGROUND}, {"DEF_SELTEXT",DEF_SELTEXT}, {"DEF_DESELBACKGROUND",DEF_DESELBACKGROUND}, {"DEF_DESELTEXT",DEF_DESELTEXT}, {"BLACK",BLACK}, {"BLUE",BLUE}, {"GREEN",GREEN}, {"CYAN",CYAN}, {"RED",RED}, {"MANGENTA",MANGENTA}, {"YELLOW",YELLOW}, {"WHITE",WHITE}, {"DARKBLUE",DARKBLUE}, {"DARKGREEN",DARKGREEN}, {"BLUEGREEN",BLUEGREEN}, {"BROWN",BROWN}, {"PURPUR",PURPUR}, {"OLIV",OLIV}, {"DARKGRAY",DARKGRAY}, {"LIGHTGRAY",LIGHTGRAY}, {"LIGHTBLUE",LIGHTBLUE}, {"DARKWHITE",DARKWHITE}, {"MIDDLEGRAY",MIDDLEGRAY}};COLORREF GetColorRef(ITEM_COLOR lParam) { switch (lParam) { case DEF_BACKGROUND: return ::GetSysColor(COLOR_WINDOW); break; case DEF_TEXT: return ::GetSysColor(COLOR_WINDOWTEXT); break; case DEF_SELBACKGROUND: return ::GetSysColor(COLOR_ACTIVECAPTION); break; case DEF_SELTEXT: return ::GetSysColor(COLOR_HIGHLIGHTTEXT); break; case DEF_DESELBACKGROUND: return ::GetSysColor(COLOR_INACTIVECAPTION); break; case DEF_DESELTEXT: return ::GetSysColor(COLOR_INACTIVECAPTIONTEXT ); break; case BLACK: return RGB(0,0,0); break; //black case BLUE: return RGB(0,0,255); break; //blue case GREEN: return RGB(0,255,0); break; //green case CYAN: return RGB(0,255,255); break; //cyan case RED: return RGB(255,0,0); break; //red case MANGENTA: return RGB(255,0,255); break; //mangenta case YELLOW: return RGB(255,255,0); break; //yellow case WHITE: return RGB(255,255,255);break; //white case DARKBLUE: return RGB(0,0,128); break; //dark-blue case DARKGREEN: return RGB(0,128,0); break; //dark-green case BLUEGREEN: return RGB(0,128,128); break; //blue-green case BROWN: return RGB(128,0,0); break; //brown case PURPUR: return RGB(128,0,128); break; //purpur case OLIV: return RGB(128,128,0); break; //oliv case DARKGRAY: |