Meteor2142, тут я думаю стоит самим что-нибудь сделать? Никак? Ну ладно, пару примеров подкину.
Писать буду в редакторе и без студии, так что мб где нибудь ошибусь.
Первый вариант:
Сделать что то типо "ползунка".
вот код примера:
Код:
#include <math.h>
POINT MP;
char* txt;
void Polzunok(int x,int y,int w,int h,int &var,int maxvalue,char* text,LPDIRECT3DDEVICE9 pDevice)
{
GetCursorPos(&MP);
DrawBox(x,y,w,h,BLACK,pDevice); //Прорисовка основного фона
DrawBorder(x,y,w,h,WHITE,pDevice);//Обводка основного фона
DrawBox(x,y,w/maxvalue*var,h,BLACK,pDevice); //Прорисовка "шкалы" (внутренний квадрат, который будет закрашивать основной фон в зависимости от состояния переменной var
DrawBorder(x,y,w/maxvalue*var,h,WHITE,pDevice);//Обводка "шкалы"
if(MP.x >= x && MP.x <= x + w && MP.y >= y && MP.y <= y + h)
{
if(GetAsyncKeyState(VK_LBUTTON)&1)
if(MP.x - x != NULL)var = abs(MP.x - x);
}
sprintf(txt,"%d %i",var,text);
font->DrawText(x+w+4,y+(h/2),YELLOW,txt,DT_LEFT|DT_SHADOW);
}
Второй вариант:
Сделать кнопки увеличения/уменьшения значения. (типо -+).
Код:
POINT MP;
char* txt;
void Button(int x,int y,int w_,int &var,int maxvalue,char* text,LPDIRECT3DDEVICE9 pDevice)
{
int h = 20;
int w = 20;
if(MP.x >= x && MP.x <= x + w && MP.y >= y && MP.y <= y + h)
{
DrawBox(x,y,w,h,WHITE,pDevice); //Прорисовка основного фона кнопки
DrawBorder(x,y,w,h,BLACK,pDevice);//Обводка основного фона кнопки
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
if(var <= NULL) var = maxvalue;
else var-=1;
}
}
else
{
DrawBox(x,y,w,h,WHITE,pDevice); //Прорисовка основного фона кнопки
DrawBorder(x,y,w,h,BLACK,pDevice);//Обводка основного фона кнопки
}
font->DrawText(x+(w/2),y+(h/2),RED,"-",DT_LEFT|DT_SHADOW);
int x2 = x+w_-w;
if(MP.x >= x2 && MP.x <= x2 + w && MP.y >= y && MP.y <= y + h)
{
DrawBox(x2,y,w,h,WHITE,pDevice); //Прорисовка основного фона кнопки
DrawBorder(x2,y,w,h,BLACK,pDevice);//Обводка основного фона кнопки
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
if(var >= maxvalue) var = NULL;
else var+=1;
}
}
else
{
DrawBox(x2,y,w,h,WHITE,pDevice); //Прорисовка основного фона кнопки
DrawBorder(x2,y,w,h,BLACK,pDevice);//Обводка основного фона кнопки
}
font->DrawText(x2+(w/2),y+(h/2),RED,"+",DT_LEFT|DT_SHADOW);
sprintf(txt,"%d %i",var,text);
font->DrawText(x+(w_/2)+3,y+(h/2),RED,txt,DT_LEFT|DT_SHADOW);
}
что-то типо этого. Подгоняйте ручками и делайте под себя.
Поблагодарили 4,294,967,294 раз(а) в 26 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
Сообщение от Lubot
очешь этим сказать, что надо расширить бокс и по координатам поместить ЧекБокс?
хотя нет, размер сам делается по X (WIDTH=160; // MENU WIDTH), а Y не как не правиш
да и сам ЧекБокс не паподает на Бокс к меню, меню бокса его перекрывает ...
так как можно поставить ЧекБокс на бокс к меню, а то я уже все перепробывал(
Draw_Button_Test(168 ,35 , 10 , 10 ,opt.glavnay.Button5, "TEST" , pDevice);
Таже самая фигня не получается чек бокс поставь в меню выход за менюшкой(((
Цитата:
Сообщение от Mathers
Допустим у тебя вот прорисовка фона:
DrawBox(x,y,w,h,D3DCOLOR,pDevice);
вот после него и вставляй "чекбокс".
Можно как то подробней?? Вот на этом примере чтоль Draw_Button_Test(50 ,80 , 100, 20 ,opt.d3d.chams, "Меню Подсветки" , pDevice);
Последний раз редактировалось **MANAX**; 02.08.2012 в 23:49.
Ну раз твы такой не нубястый прям отэЦ.То найди в исходе димидрола это умник
Он хотел сказать что прорисовки идет "слоями", то есть: Сначало бокс, затем Бордюр, далее элементы управления...
Если ты сначало нарисуешь элемент управления, а затем бокс, то бокс перекроет кнопку...
Поблагодарили 4,294,967,294 раз(а) в 26 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
Сообщение от Meteor2142
А поставить свой цвет не судьба?
Да и не вопрос
[Ссылки могут видеть только зарегистрированные пользователи. ]
ток оно вообще типерь не появляется ни за меню ни в меню (((
Вобщем я смотрю тут не помогут тут ток ток поучать могут ОТЦЫ и этим все сказано))
Поблагодарили 4,294,967,294 раз(а) в 26 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
Сообщение от крайслер
посмотри результат....
Все это не то ((( за менюшку и я могу вынести и не спрашивал бы как
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вопрос в чесм чтоб этоже отображалось в основном меню а не за его пределами
изменение вот этих параметров на те которые нужны мне
Ты вставляешь кнопку на место Текст(само меню), следовательно у тебя кнопка рисуется под боксом....
Ну к я и спрашиваю как все это сделать чтоб работало??? или как нужно подскажи что тут не понятного я уже пол дня спрашиваю одно и тоже
Вот как мне нужно может так понятней будет.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось **MANAX**; 03.08.2012 в 15:13.
Причина: Добавлено сообщение
Вместо своего кода вставь и посмотри результат....
спасибо)
Цитата:
Сообщение от **MANAX**
Ну к я и спрашиваю как все это сделать чтоб работало??? или как нужно подскажи что тут не понятного я уже пол дня спрашиваю одно и тоже
Вот как мне нужно может так понятней будет.