Рисуем своеобразный чекБокс... - Разработка ПО для Point Blank - Бюро разработчиков Zhyk.Ru: создание чит-программ и прочего ПО для Point Blank
13.08.2012, 14:54
#31
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: Рисуем своеобразный чекБокс...
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Пользователь сказал cпасибо:
13.09.2012, 16:32
#32
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
Я ищу ответ на вопрос,как сделать бокс с права,а текст с лева, то есть наоборот .
13.09.2012, 16:45
#33
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
Я ищу ответ на вопрос,как сделать бокс с права,а текст с лева, то есть наоборот
Изменить координаты в функции:
Вот готовое решение:
Код:
void cMenu::Draw_Check(int x ,int y , int w , int h ,int &Var ,char *Button_Text ,LPDIRECT3DDEVICE9 pDevice)
{
int y_ = (y) + (h/2)-7;
int x_ = x +w+2;
int y__ = ((h) - (h/2));
int x__ = (x + w/2);
if(IsInBox(x+140,y-5,w,h))
{
DrawBorder(x-2+140,y-2,w+2,h+3,DEEPSKYBLUE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
DrawBorder(x-1+140,y-1,w,h,GREEN,pDevice);
if(Var == 1 && Var !=0)
{
Var = 0;
}
else if(Var == 0)
{
Var = 1;
}
}
}
if(Var == 0)
{
DrawBox(x+140,y,w,h,TxtOFF,pDevice);
DrawBorder(x+140-1,y-1,w,h,RED,pDevice);
}
if(Var == 1)
{
DrawBox(x+140,y,w,h,TxtOFF,pDevice);
DrawBorder(x+140-1,y-1,w,h,RED,pDevice);
DrawBox(x+141,y+1,w-3,h-3,COL,pDevice);
}
font->DrawText(x+1,y-1,C_TITL,Button_Text,DT_LEFT|DT_SHADOW);
}
Код:
void Draw_Check(int x ,int y , int w , int h ,int &Var ,char *Button_Text ,LPDIRECT3DDEVICE9 pDevice);
Выглядит так:
[
Ссылки могут видеть только зарегистрированные пользователи. ]
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Пользователь сказал cпасибо:
13.09.2012, 17:05
#34
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
Изменить координаты в функции:
Вот готовое решение:
Код:
void cMenu::Draw_Check(int x ,int y , int w , int h ,int &Var ,char *Button_Text ,LPDIRECT3DDEVICE9 pDevice)
{
int y_ = (y) + (h/2)-7;
int x_ = x +w+2;
int y__ = ((h) - (h/2));
int x__ = (x + w/2);
if(IsInBox(x+140,y-5,w,h))
{
DrawBorder(x-2+140,y-2,w+2,h+3,DEEPSKYBLUE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
DrawBorder(x-1+140,y-1,w,h,GREEN,pDevice);
if(Var == 1 && Var !=0)
{
Var = 0;
}
else if(Var == 0)
{
Var = 1;
}
}
}
if(Var == 0)
{
DrawBox(x+140,y,w,h,TxtOFF,pDevice);
DrawBorder(x+140-1,y-1,w,h,RED,pDevice);
}
if(Var == 1)
{
DrawBox(x+140,y,w,h,TxtOFF,pDevice);
DrawBorder(x+140-1,y-1,w,h,RED,pDevice);
DrawBox(x+141,y+1,w-3,h-3,COL,pDevice);
}
font->DrawText(x+1,y-1,C_TITL,Button_Text,DT_LEFT|DT_SHADOW);
}
Код:
void Draw_Check(int x ,int y , int w , int h ,int &Var ,char *Button_Text ,LPDIRECT3DDEVICE9 pDevice);
Выглядит так:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Спасибо большое!
Добавлено через 10 минут
Да что такое... смотри
Ошибка в "COL"
Ща скрин сделаю
Добавлено через 24 минуты
[
Ссылки могут видеть только зарегистрированные пользователи. ]
Вот (
Последний раз редактировалось DqqБог; 13.09.2012 в 17:29 .
Причина: Добавлено сообщение
13.09.2012, 17:43
#35
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
Да что такое... смотри
Ошибка в "COL"
Ща скрин сделаю
Это цвет))
Замени на свой или допиши то чего не хватает:
Цитата:
#define ButtoN D3DCOLOR_ARGB(255, 190, 190, 190)
#define TxtON D3DCOLOR_ARGB(255,0,0,0)
#define TxtOFF D3DCOLOR_ARGB(255,40,40,40)
#define ButtoNRed D3DCOLOR_ARGB(255, 190, 190, 190)
#define COL D3DCOLOR_ARGB(255, 238, 201, 0)
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Пользователь сказал cпасибо:
13.09.2012, 18:11
#36
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
И думаю это финальная ошибка: D точнее 2
[Ссылки могут видеть только зарегистрированные пользователи. ]
Добавлено через 2 часа 48 минут
Все ошибки из за кода который ты мне кинул,исправь как нить просто оси чтоб код тот же был
Последний раз редактировалось DqqБог; 13.09.2012 в 20:59 .
Причина: Добавлено сообщение
15.09.2012, 00:49
#37
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
Как мне добавить кубиков?Ща сделаю скрины,помоему все добавил,может в кординатах ошибся?
[
Ссылки могут видеть только зарегистрированные пользователи. ]
[
Ссылки могут видеть только зарегистрированные пользователи. ]
А вод и сам код
Цитата:
void cMenu: raw_Chams(int x ,int y ,int &funkc_Chams ,char* text,LPDIRECT3DDEVICE9 pDevice)
{
//---------------------------------------------------------
DrawBox(x ,y,11,11,RED,pDevice);
DrawBorder(x + 13, y, 10, 9,WHITE,pDevice);
//---------------------------------------------------------
DrawBox(x ,y,11,11,GREEN,pDevice);
DrawBorder(x + 13, y, 10, 9,WHITE,pDevice);
//---------------------------------------------------------
DrawBox(x ,y,11,11,WHITE,pDevice);
DrawBorder(x + 13, y, 10, 9,WHITE,pDevice);
//----------------------------------------------------------
if(IsInBox(x + 39,y+4,11,11))
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=3;}
}
if(IsInBox(x + 26,y+4,11,11))
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=2;}
}
if(IsInBox(x,y+4,11,11))
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=1;}
}
if(IsInBox(x + 13,y+4,11,11))
{
DrawBorder(x+12, y-1, 12, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=0;}
}
font->DrawText(x+35,y-1,WHITE,text,DT_SHADOW);
}
Последний раз редактировалось DqqБог; 15.09.2012 в 00:53 .
15.09.2012, 01:04
#38
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: Рисуем своеобразный чекБокс...
В координатах проблемма + лишние строчки)))
Код:
DrawBox(x ,y,11,11,RED,pDevice);//Это красный квадратик))
DrawBorder(x + 13, y, 10, 9,WHITE,pDevice);//это пустой квадратик
тебе нужно дописать еще несколько штук, то есть ты дабавляешь прорисовку нужного тебе количество квадратиков с учетом смещения:
Код:
DrawBox(x ,y,11,11,RED,pDevice);//Это красный квадратик))
DrawBox(x + 13 ,y,11,11,GREEN,pDevice);//Это зеленный квадратик))
DrawBox(x + 13*2 ,y,11,11,WHITE,pDevice);//Это белый квадратик))
DrawBorder(x + 13*3 , y, 10, 9,WHITE,pDevice);//это пустой квадратик
Дописываешь ловлю клика по этим координатам
Код:
if(IsInBox(x,y+4,11,11))//для красного квадратика
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=1 ;}
}
if(IsInBox(x+13,y+4,11,11))//для зеленого квадратика
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=2 ;}
}
if(IsInBox(x+13*2,y+4,11,11))//для белого квадратика
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=3 ;}
}
if(IsInBox(x + 13*3,y+4,11,11))//для пустого квадратика
{
DrawBorder(x+12, y-1, 12, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=0;}
}
+ смещаешь текст на нужное растояние
Код:
font->DrawText(x+13*4,y-1,WHITE,text,DT_SHADOW);
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Пользователь сказал cпасибо:
15.09.2012, 01:36
#39
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
Спасибо!А как поменять местами боксы и текст?Чтоб текст был с лево,а боксы с право?
15.09.2012, 01:44
#40
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
Спасибо!А как поменять местами боксы и текст?Чтоб текст был с лево,а боксы с право?
Если взять в расчет что ширина меню равна 160, то
Цитата:
font->DrawText(x,y-1,WHITE,text,DT_LEFT|DT_SHADOW);
Цитата:
int X_c = 160-15;
DrawBox(X_c-13*3 ,y,11,11,RED,pDevice);//Это красный квадратик))
DrawBox(X_c - 13*2 ,y,11,11,GREEN,pDevice);//Это зеленный квадратик))
DrawBox(X_c-13 ,y,11,11,WHITE,pDevice);//Это белый квадратик))
DrawBorder(X_c, y, 10, 9,WHITE,pDevice);//это пустой квадратик
Также замени координаты у IsInBox...
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Пользователь сказал cпасибо:
15.09.2012, 01:56
#41
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
У меня с координатами проблема,не заменишь координаты?
Цитата:
if(IsInBox(x,y+4,11,11))//для красного квадратика
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=1;}
}
if(IsInBox(x+13,y+4,11,11))//для зеленого квадратика
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=2;}
}
if(IsInBox(x+13*2,y+4,11,11))//для белого квадратика
{
DrawBorder(x-1, y-1, 11, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=3;}
}
if(IsInBox(x + 13*3,y+4,11,11))//для пустого квадратика
{
DrawBorder(x+12, y-1, 12, 12,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=0;}
}
Добавлено через 13 часов 12 минут
Как мне передвинуть цвета на свое место?
[
Ссылки могут видеть только зарегистрированные пользователи. ]
Вот код
Код:
if(IsInBox(X_c-18*3 ,y+4,13,13))//для красного квадратика
{
DrawBorder(x-1, y-1, 13, 13,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=1;}
}
if(IsInBox(X_c - 18*2 ,y+4,13,13))//для зеленого квадратика
{
DrawBorder(x-1, y-1, 13, 13,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=2;}
}
if(IsInBox(X_c-18 ,y+4,13,13))//для белого квадратика
{
DrawBorder(x-1, y-1, 13, 13,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=3;}
}
if(IsInBox(X_c,y+4,13,13))//для пустого квадратика
{
DrawBorder(x+12, y-1, 13, 13,WHITE,pDevice);
if(GetAsyncKeyState(VK_LBUTTON)&1){funkc_Chams=0;}
}
Добавлено через 13 часов 55 минут
Менял все координаты Х и они не сдвинулись не капли
Добавлено через 17 часов 11 минут
C етим разобрался,а как удрать обводку
Вот скрин пример на Вз.Всех
[
Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось DqqБог; 15.09.2012 в 19:08 .
Причина: Добавлено сообщение
15.09.2012, 21:24
#42
Старший сержант
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Re: Рисуем своеобразный чекБокс...
Цитата:
C етим разобрался,а как удрать обводку
Вот скрин пример на Вз.Всех
Часть которая отвечает за эфект при наводке:
Код:
if(mpos.x > X4 && mpos.x < MC_MAXX4&& mpos.y > MC_ITEMY4(no) && mpos.y < MC_ITEMY4(no) + I_SPC)
{
//text = ORANGE;
DrawBorder(X4,MC_ITEMY(no),WIDTH,I_SPC,C_CUR,pDevice);
}
Удаляешь или вставляешь нужное...
ЗЫ: Для каждого подменю в отдельности...
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Пользователь сказал cпасибо:
15.09.2012, 21:32
#43
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
Последний раз редактировалось DqqБог; 16.09.2012 в 15:22 .
Причина: Добавлено сообщение
16.09.2012, 22:01
#44
Разведчик
Регистрация: 06.09.2012
Сообщений: 18
Популярность: -26
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Рисуем своеобразный чекБокс...
Коды:
Цитата:
void cMenu: raw_Button_Scrol(int x,int y,int &Var,char **typ,int max,char* text,LPDIRECT3DDEVICE9 pDevice)
{
//----Рисуем кнопку "-"(уменьшение)-----
DrawBox(x,y,11,11,WHITE,pDevice);
DrawBorder(x,y,10,10,ORANGE, pDevice);
font->DrawText(x+6,y-3,BLACK,"-",DT_CENTER);
//----Рисуем кнопку "+"(увиличение)-----
DrawBox(x + 50,y,11,11,WHITE,pDevice);
DrawBorder(x+50,y,10,10,ORANGE, pDevice);
font->DrawText(x+56,y-2,BLACK,"+",DT_CENTER);
if(IsInBox(x,y-4,10,10))
{
DrawBorder(x-1,y-1,12,12,BLUE, pDevice);
if(GetAsyncKeyState(VK_LBUTTON))
{
if(Var!=0)
{
Var--;
Sleep(100);
}
}
}
if(IsInBox(x + 50,y-4,10,10))
{
DrawBorder(x+49,y-1,12,12,BLUE, pDevice);
if(GetAsyncKeyState(VK_LBUTTON))
{
if(Var>=0 && Var<max)
{
Var++;
Sleep(100);
}
}
}
font->DrawText(x+19,y-1,RED,typ[Var],DT_SHADOW);
font->DrawText(x+20*4,y-1,WHITE,text,DT_SHADOW);
}
Массив для перебора
Цитата:
char *optSkor [] = { "Off","1","2","3","4","5","6","7","8","9","10" };
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 16:43 .