Рисовать будем такой вот контрол:

Приступим:
Определяем прототип:
Код HTML:
void  Draw_ColorBox(stMenu *pos_Menu, char *Text, int &Var,DWORD *Sel_color,int SizeArr, IDirect3DDevice9 * pDevice);
"DWORD *Sel_color" - указатель на массив где будут хранится цвета
"int SizeArr" - количество элементов в массиве

Остальные аргументы думаю не стоит представлять.
Описываем функцию:
Код HTML:
void  cRender::Draw_ColorBox(stMenu *pos_Menu, char *Text, int &Var,DWORD *Sel_color,int SizeArr, IDirect3DDevice9 * pDevice)
{
	int x = (*pos_Menu).x+110,
		y = (*pos_Menu)._y,
		w = 25,
		h = 16;

	if(IsInBox(x,y ,w,h))
	{ 
		if (State_Key(VK_LBUTTON,300) ) 
			if(Var>=0 && Var
При нажатии ЛКМ по прямоугольнику цвет будет переключаться на одну позицию вперед, при ПКМ - на одну назад.

Использование(на примере бокса):
Заводим массив типа DWORD и переменную типа int в области видимости:
Код HTML:
int i_Fun__1;
DWORD test_Color_1[] = {0xff305C5F,RED,BLUE,BLACK,WHITE,GREEN,Violet,ORANGE,YELLOW,line_Color,DarkGoldenrod };
В меню:
Код HTML:
Draw_ColorBox(&pos_Menu, "Draw_ColorBox 1", i_Fun__1,test_Color_1,10,  pDevice);
Теперь на примере бокса показываем работу:
Код HTML:
Draw_Box(320,18,50,20,test_Color_1[i_Fun__1],pDevice);
что получилось