007wan |
Отправлено: 12 Ноября, 2019 - 10:07:41
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
code (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define PS_SOLID 0
#define PS_NULL 5
#define SRCCOPY 13369376
#define TRANSPARENT 1
#define DT_CENTER 1
#define RUSSIAN_CHARSET 204
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "RoundRect", "RoundRect", "Gdi32.dll");
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "PtInRect", "PtInRect", "User32.dll");
external(INT, "BitBlt", "BitBlt", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll");
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll");
external(INT, "DrawText", "DrawTextA", "User32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "Ellipse", "Ellipse", "Gdi32.dll");
win Main_Window;
int Object_Font1, old_font;
int MouseX, MouseY;
int HDC, HDC_Memory, HDC_Bitmap;
int Object_Pen1, Object_Brush1, Oject_Brush2, Object_Brush3, old_pen, old_brush;
Object_Pen1 = CreatePen(PS_NULL, 0, 0);
Object_Brush1 = CreateSolidBrush(4307199);
Oject_Brush2 = CreateSolidBrush(3309517);
Object_Brush3 = CreateSolidBrush(14013909);
int Current_Tab = 0;
int Created_Tab = 0;
string Text_Tab[3] = {"Game1", "Game2", "Game3"};
int Coordinates_Tab[3][4];
Coordinates_Tab[0][0]=25; Coordinates_Tab[0][1]=10; Coordinates_Tab[0][2]=150; Coordinates_Tab[0][3]=40;
Coordinates_Tab[1][0]=155; Coordinates_Tab[1][1]=10; Coordinates_Tab[1][2]=280; Coordinates_Tab[1][3]=40;
Coordinates_Tab[2][0]=285; Coordinates_Tab[2][1]=10; Coordinates_Tab[2][2]=410; Coordinates_Tab[2][3]=40;
int Ñoordinates_Plus[1][4];
Ñoordinates_Plus[0][0] = 25; Ñoordinates_Plus[0][1] = 10; Ñoordinates_Plus[0][2] = 47; Ñoordinates_Plus[0][3] = 31;
int image_width = 515;
int image_height = 500;
createdialog(0);
showdialog(0, "Balloon Bot", 200, 200, 515, 500, 1, 1);
enabletimer(0);
setwindowparam(Main_Window);
while (Main_Window <= 0)
{
Main_Window = window("Balloon Bot");
sleep(100);
}
loop()
{
sleep(10);
}
function getmessage(0, WM_CREATE)
{
HDC = GetDC(gethwnd(0));
HDC_Memory = CreateCompatibleDC(HDC);
HDC_Bitmap = CreateCompatibleBitmap(HDC, image_width, image_height);
SelectObject(HDC_Memory, HDC_Bitmap);
SetBkMode(HDC_Memory, TRANSPARENT);
Object_Font1 = CreateFont(-14, 0, 0, 0, 500, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Comic Sans MS");
}
function getmessage(0, WM_MOVE)
{
pause(100);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(1))
{
while(getkeystate(1))sleep(10);
getmouse(MouseX, MouseY, formatiw(gethwnd(0)));
for(int tab_=0; tab_<Created_Tab; tab_++)
{
if(PtInRect(address(#Coordinates_Tab[tab_][0]), MouseX, MouseY))
{
Current_Tab = tab_;
break;
}
}
if(PtInRect(address(#Ñoordinates_Plus[0][0]), MouseX, MouseY))
{
if(Created_Tab < 3)
{
Ñoordinates_Plus[0][0] = 0+Coordinates_Tab[Created_Tab][2];
Ñoordinates_Plus[0][2] = 22+Ñoordinates_Plus[0][0];
Created_Tab++;
Current_Tab = Created_Tab-1;
}
}
}
paint();
}
function paint()
{
old_pen = SelectObject(HDC_Memory, Object_Pen1);
old_font = SelectObject(HDC_Memory, Object_Font1);
old_brush = SelectObject(HDC_Memory, Object_Brush3);
Rectangle(HDC_Memory, 0, 0, image_width+1, image_height+1);
for(int i=0; i<Created_Tab; i++)
{
if (i == Current_Tab)
{
old_brush = SelectObject(HDC_Memory, Object_Brush1);
}
else
{
old_brush = SelectObject(HDC_Memory, Oject_Brush2);
}
RoundRect(HDC_Memory, Coordinates_Tab[i][0], Coordinates_Tab[i][1], Coordinates_Tab[i][2], Coordinates_Tab[i][3], 10, 10);
SetTextColor(HDC_Memory, 0);
DrawText(HDC_Memory, Text_Tab[i], size(Text_Tab[i]), address(#Coordinates_Tab[i][0]), DT_CENTER);
}
old_brush = SelectObject(HDC_Memory, Object_Brush1);
RoundRect(HDC_Memory, 10, 30, 500, 250, 10, 10);
if(Created_Tab < 3)
{
RoundRect(HDC_Memory, Ñoordinates_Plus[0][0], Ñoordinates_Plus[0][1], Ñoordinates_Plus[0][2], Ñoordinates_Plus[0][3], 10, 10);
DrawText(HDC_Memory, "+", 1, address(#Ñoordinates_Plus[0][0]), DT_CENTER);
//DrawText(HDC_Memory, "-", 1, address(#Ñoordinates_Plus[0][0]), DT_CENTER);
}
SelectObject(HDC_Memory, old_font);
SelectObject(HDC_Memory, old_brush);
SelectObject(HDC_Memory, old_pen);
BitBlt(HDC, 0, 0, image_width, image_height, HDC_Memory, 0, 0, SRCCOPY);
}
Если заменить Всё CODE:int image_width = 515;
int image_height = 500;
на CODE:Main_Window.width & height , то будет пустой диалог |
|
|
007wan |
Отправлено: 12 Ноября, 2019 - 10:20:17
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: int Ñoordinates_Plus[1][4];
Первая буква имени русская. Не помогло. Всеравно таб нге отображается
(Добавление)
Код (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define PS_SOLID 0
#define PS_NULL 5
#define SRCCOPY 13369376
#define TRANSPARENT 1
#define DT_CENTER 1
#define RUSSIAN_CHARSET 204
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "RoundRect", "RoundRect", "Gdi32.dll");
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "PtInRect", "PtInRect", "User32.dll");
external(INT, "BitBlt", "BitBlt", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll");
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll");
external(INT, "DrawText", "DrawTextA", "User32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "Ellipse", "Ellipse", "Gdi32.dll");
win Main_Window;
int Object_Font1, old_font;
int MouseX, MouseY;
int HDC, HDC_Memory, HDC_Bitmap;
int Object_Pen1, Object_Brush1, Oject_Brush2, Object_Brush3, old_pen, old_brush;
Object_Pen1 = CreatePen(PS_NULL, 0, 0);
Object_Brush1 = CreateSolidBrush(4307199);
Oject_Brush2 = CreateSolidBrush(3309517);
Object_Brush3 = CreateSolidBrush(14013909);
int Current_Tab = 0;
int Created_Tab = 0;
string Text_Tab[3] = {"Game1", "Game2", "Game3"};
int Coordinates_Tab[3][4];
Coordinates_Tab[0][0]=25; Coordinates_Tab[0][1]=10; Coordinates_Tab[0][2]=150; Coordinates_Tab[0][3]=40;
Coordinates_Tab[1][0]=155; Coordinates_Tab[1][1]=10; Coordinates_Tab[1][2]=280; Coordinates_Tab[1][3]=40;
Coordinates_Tab[2][0]=285; Coordinates_Tab[2][1]=10; Coordinates_Tab[2][2]=410; Coordinates_Tab[2][3]=40;
int Coordinates_Plus[1][4];
Coordinates_Plus[0][0] = 25; Coordinates_Plus[0][1] = 10; Coordinates_Plus[0][2] = 47; Coordinates_Plus[0][3] = 31;
int Coordinates_Minus[1][4];
Coordinates_Minus[0][0] = 135; Coordinates_Minus[0][1] = 7; Coordinates_Minus[0][2] = 145; Coordinates_Minus[0][3] = 22;
int image_width = 515;
int image_height = 500;
createdialog(0);
showdialog(0, "Balloon Bot", 200, 200, 515, 500, 1, 1);
enabletimer(0);
setwindowparam(Main_Window);
while (Main_Window <= 0)
{
Main_Window = window("Balloon Bot");
sleep(100);
}
loop()
{
sleep(10);
}
function getmessage(0, WM_CREATE)
{
HDC = GetDC(gethwnd(0));
HDC_Memory = CreateCompatibleDC(HDC);
HDC_Bitmap = CreateCompatibleBitmap(HDC, image_width, image_height);
SelectObject(HDC_Memory, HDC_Bitmap);
SetBkMode(HDC_Memory, TRANSPARENT);
Object_Font1 = CreateFont(-14, 0, 0, 0, 500, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Comic Sans MS");
}
function getmessage(0, WM_MOVE)
{
pause(100);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(1))
{
while(getkeystate(1))sleep(10);
getmouse(MouseX, MouseY, formatiw(gethwnd(0)));
for(int tab_=0; tab_<Created_Tab; tab_++)
{
if(PtInRect(address(#Coordinates_Tab[tab_][0]), MouseX, MouseY))
{
Current_Tab = tab_;
break;
}
}
if(PtInRect(address(#Coordinates_Plus[0][0]), MouseX, MouseY))
{
if(Created_Tab < 3)
{
Coordinates_Plus[0][0] = 0+Coordinates_Tab[Created_Tab][2];
Coordinates_Plus[0][2] = 22+Coordinates_Plus[0][0];
Created_Tab++;
Current_Tab = Created_Tab-1;
}
}
if(PtInRect(address(#Coordinates_Minus[0][0]), MouseX, MouseY))
{
messagebox(1);
}
}
paint();
}
function paint()
{
old_pen = SelectObject(HDC_Memory, Object_Pen1);
old_brush = SelectObject(HDC_Memory, Object_Brush3);
Rectangle(HDC_Memory, 0, 0, image_width+1, image_height+1);
for(int i=0; i<Created_Tab; i++)
{
if (i == Current_Tab)
{
old_brush = SelectObject(HDC_Memory, Object_Brush1);
}
else
{
old_brush = SelectObject(HDC_Memory, Oject_Brush2);
}
old_font = SelectObject(HDC_Memory, Object_Font1);
RoundRect(HDC_Memory, Coordinates_Tab[i][0], Coordinates_Tab[i][1], Coordinates_Tab[i][2], Coordinates_Tab[i][3], 10, 10);
SetTextColor(HDC_Memory, 0);
DrawText(HDC_Memory, Text_Tab[i], size(Text_Tab[i]), address(#Coordinates_Tab[i][0]), DT_CENTER);
SelectObject(HDC_Memory, old_font);
}
old_brush = SelectObject(HDC_Memory, Object_Brush1);//3
RoundRect(HDC_Memory, 10, 30, 500, 250, 10, 10);
if(Created_Tab < 3)
{
RoundRect(HDC_Memory, Coordinates_Plus[0][0], Coordinates_Plus[0][1], Coordinates_Plus[0][2], Coordinates_Plus[0][3], 10, 10);
DrawText(HDC_Memory, "+", 1, address(#Coordinates_Plus[0][0]), DT_CENTER);
//RoundRect(HDC_Memory, Coordinates_Minus[0][0], Coordinates_Minus[0][1], Coordinates_Minus[0][2], Coordinates_Minus[0][3], 10, 10);
DrawText(HDC_Memory, "õ", 1, address(#Coordinates_Minus[0][0]), DT_CENTER);
}
SelectObject(HDC_Memory, old_brush);
SelectObject(HDC_Memory, old_pen);
BitBlt(HDC, 0, 0, image_width, image_height, HDC_Memory, 0, 0, SRCCOPY);
}
Почему ИКС такой уродский? даже меньше ПЛЮСА.(без разницы, что со шрифтом, что без). Я думал они одинаковые будут.
Странно, что при нажатии на "х" он не только обрабатывает сообщение закрытия, но и делает ее активной, как это решить? Что бы при нажатии на "х", только закрывал и не делал активной.
(Добавление)
Зато я знаю как удалить вкладку и как она будет удаляться. |
|
|
007wan |
Отправлено: 12 Ноября, 2019 - 12:24:37
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Почему текст перемещается? Я же задаю новые координаты и вызываю новую функцию рисования текста?
CODE:if(Created_Tab == 1)
{
DrawText(HDC_Memory, "х", 1, address(#Coordinates_Minus[0][0]), DT_CENTER);
}
if(Created_Tab == 2)
{
DrawText(HDC_Memory, "х", 1, address(#Coordinates_Minus[1][0]), DT_CENTER);
} А он просто заменяет "х"(перемещает)
(Добавление)
007wan пишет: Почему текст перемещается? Я же задаю новые координаты и вызываю новую функцию рисования текста?
CODE:if(Created_Tab == 1)
{
DrawText(HDC_Memory, "х", 1, address(#Coordinates_Minus[0][0]), DT_CENTER);
}
if(Created_Tab == 2)
{
DrawText(HDC_Memory, "х", 1, address(#Coordinates_Minus[1][0]), DT_CENTER);
} А он просто заменяет "х"(перемещает) А, понял, в цикл надо было...
(Добавление)
Zireael , Вот, что получилось, но не получается сделать, что бы закрывал ту вкладку, на которой нажмешь "х", сейчас закрывает последнюю вкладку и -- при нажатии на "х" при услвоии, что вы нажал это в текущей вкладки.Код (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define PS_SOLID 0
#define PS_NULL 5
#define SRCCOPY 13369376
#define TRANSPARENT 1
#define DT_CENTER 1
#define RUSSIAN_CHARSET 204
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "RoundRect", "RoundRect", "Gdi32.dll");
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "PtInRect", "PtInRect", "User32.dll");
external(INT, "BitBlt", "BitBlt", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll");
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll");
external(INT, "DrawText", "DrawTextA", "User32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "Ellipse", "Ellipse", "Gdi32.dll");
win Main_Window;
int Object_Font1, old_font;
int MouseX, MouseY;
int HDC, HDC_Memory, HDC_Bitmap;
int Object_Pen1, Object_Brush1, Oject_Brush2, Object_Brush3, old_pen, old_brush;
Object_Pen1 = CreatePen(PS_NULL, 0, 0);
Object_Brush1 = CreateSolidBrush(4307199);
Oject_Brush2 = CreateSolidBrush(3309517);
Object_Brush3 = CreateSolidBrush(14013909);
int Current_Tab = 0;
int Created_Tab = 0;
string Text_Tab[3] = {"Game1", "Game2", "Game3"};
int Coordinates_Tab[3][4];
Coordinates_Tab[0][0]=25; Coordinates_Tab[0][1]=10; Coordinates_Tab[0][2]=150; Coordinates_Tab[0][3]=40;
Coordinates_Tab[1][0]=155; Coordinates_Tab[1][1]=10; Coordinates_Tab[1][2]=280; Coordinates_Tab[1][3]=40;
Coordinates_Tab[2][0]=285; Coordinates_Tab[2][1]=10; Coordinates_Tab[2][2]=410; Coordinates_Tab[2][3]=40;
int Coordinates_Plus[1][4];
Coordinates_Plus[0][0] = 25; Coordinates_Plus[0][1] = 10; Coordinates_Plus[0][2] = 47; Coordinates_Plus[0][3] = 31;
int Coordinates_Minus[3][4];
Coordinates_Minus[0][0] = 135; Coordinates_Minus[0][1] = 7; Coordinates_Minus[0][2] = 145; Coordinates_Minus[0][3] = 22;
Coordinates_Minus[1][0] = 265; Coordinates_Minus[1][1] = 7; Coordinates_Minus[1][2] = 275; Coordinates_Minus[1][3] = 22;
Coordinates_Minus[2][0] = 395; Coordinates_Minus[2][1] = 7; Coordinates_Minus[2][2] = 405; Coordinates_Minus[2][3] = 22;
int image_width = 515;
int image_height = 500;
createdialog(0);
showdialog(0, "Balloon Bot", 200, 200, 515, 500, 1, 1);
enabletimer(0);
setwindowparam(Main_Window);
while (Main_Window <= 0)
{
Main_Window = window("Balloon Bot");
sleep(100);
}
loop()
{
sleep(10);
}
function getmessage(0, WM_CREATE)
{
HDC = GetDC(gethwnd(0));
HDC_Memory = CreateCompatibleDC(HDC);
HDC_Bitmap = CreateCompatibleBitmap(HDC, image_width, image_height);
SelectObject(HDC_Memory, HDC_Bitmap);
SetBkMode(HDC_Memory, TRANSPARENT);
Object_Font1 = CreateFont(-14, 0, 0, 0, 500, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Comic Sans MS");
}
function getmessage(0, WM_MOVE)
{
pause(100);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(1))
{
while(getkeystate(1))sleep(10);
getmouse(MouseX, MouseY, formatiw(gethwnd(0)));
for(int tab_=0; tab_<Created_Tab; tab_++)
{
if(PtInRect(address(#Coordinates_Tab[tab_][0]), MouseX, MouseY))
{
Current_Tab = tab_;
break;
}
if(PtInRect(address(#Coordinates_Minus[Current_Tab][0]), MouseX, MouseY))
{
Created_Tab--;
break;
}
if(PtInRect(address(#Coordinates_Minus[tab_][0]), MouseX, MouseY))
{
Created_Tab--;
break;
}
}
if(PtInRect(address(#Coordinates_Plus[0][0]), MouseX, MouseY))
{
if(Created_Tab < 3)
{
Coordinates_Plus[0][0] = 0+Coordinates_Tab[Created_Tab][2];
Coordinates_Plus[0][2] = 22+Coordinates_Plus[0][0];
Created_Tab++;
Current_Tab = Created_Tab-1;
}
}
}
paint();
}
function paint()
{
old_pen = SelectObject(HDC_Memory, Object_Pen1);
old_brush = SelectObject(HDC_Memory, Object_Brush3);
Rectangle(HDC_Memory, 0, 0, image_width+1, image_height+1);
for(int i=0; i<Created_Tab; i++)
{
if (i == Current_Tab)
{
old_brush = SelectObject(HDC_Memory, Object_Brush1);
}
else
{
old_brush = SelectObject(HDC_Memory, Oject_Brush2);
}
old_font = SelectObject(HDC_Memory, Object_Font1);
RoundRect(HDC_Memory, Coordinates_Tab[i][0], Coordinates_Tab[i][1], Coordinates_Tab[i][2], Coordinates_Tab[i][3], 10, 10);
SetTextColor(HDC_Memory, 0);
DrawText(HDC_Memory, Text_Tab[i], size(Text_Tab[i]), address(#Coordinates_Tab[i][0]), DT_CENTER);
DrawText(HDC_Memory, "õ", 1, address(#Coordinates_Minus[i][0]), DT_CENTER);
SelectObject(HDC_Memory, old_font);
}
old_brush = SelectObject(HDC_Memory, Object_Brush1);//3
RoundRect(HDC_Memory, 10, 30, 500, 250, 10, 10);
if(Created_Tab < 3)
{
RoundRect(HDC_Memory, Coordinates_Plus[0][0], Coordinates_Plus[0][1], Coordinates_Plus[0][2], Coordinates_Plus[0][3], 10, 10);
DrawText(HDC_Memory, "+", 1, address(#Coordinates_Plus[0][0]), DT_CENTER);
//RoundRect(HDC_Memory, Coordinates_Minus[0][0], Coordinates_Minus[0][1], Coordinates_Minus[0][2], Coordinates_Minus[0][3], 10, 10);
}
SelectObject(HDC_Memory, old_brush);
SelectObject(HDC_Memory, old_pen);
BitBlt(HDC, 0, 0, image_width, image_height, HDC_Memory, 0, 0, SRCCOPY);
}
(Добавление)
Пожалуйста подскажите, как удалить ту вкладку, на которой был нажат "х" |
|
|
Zireael |
Отправлено: 12 Ноября, 2019 - 13:31:43
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: "õ"
И где тут x?
Зачем удалять комментарии кода?
Цитата: как удалить ту вкладку, на которой был нажат "х"
Поменять текст вкладок.
string Text_Tab[3] = {"Game1", "Game2", "Game3"}
Например, если удалить первую вкладку, то:
Text_Tab[0] станет "Game2", вместо "Game1"
Text_Tab[1] станет "Game3", вместо "Game2" |
|
|
007wan |
Отправлено: 12 Ноября, 2019 - 13:38:25
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: И где тут x?
и где тут х? Это русская просто. Он преобразовался русскую в это. Zireael пишет: чем удалять комментарии кода?
Глаза мозолят.
Zireael пишет: Поменять текст вкладок.
string Text_Tab[3] = {"Game1", "Game2", "Game3"}
Например, если удалить первую вкладку, то:
Text_Tab[0] станет "Game2", вместо "Game1"
Text_Tab[1] станет "Game3", вместо "Game2" Что а бред? А если у меня будут вкладки называться игровыми названиями, то перед удалением пользователь увидит, что вкладка поменяла название и удалилась? Если можно по конкретнее, я не понимаю как изменение текста приведет к удалению вкладок : ) Мн нужно не переименовать вкладку, а удалить, т.е удалить текст её, удалить прямоугольник в том месте, где была нажата "х".
(Добавление)
Вот сейчас попробовал и вкладка только поменяла текст свой и всё. |
|
|
007wan |
Отправлено: 12 Ноября, 2019 - 13:51:13
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: А переменную, которая отвечает за количество вкладок уменьшать кто будет? Всеравно не работает.
CODE:for(int tab_=0; tab_<Created_Tab; tab_++)
{
if(PtInRect(address(#Coordinates_Tab[tab_][0]), MouseX, MouseY))
{
Current_Tab = tab_;
break;
}
if(PtInRect(address(#Coordinates_Minus[tab_][0]), MouseX, MouseY))
{
Text_Tab[tab_] = "Game1";
Created_Tab--;
}
}
(Добавление)
Нет, работает, но не удаляет ту, которую я выбрал "Х".
Например, Создал 3 вкладки, а закрыл первую, а на деле - закрывает последнюю.
Вот сам посмотри.
Код (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define PS_SOLID 0
#define PS_NULL 5
#define SRCCOPY 13369376
#define TRANSPARENT 1
#define DT_CENTER 1
#define RUSSIAN_CHARSET 204
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "RoundRect", "RoundRect", "Gdi32.dll");
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "PtInRect", "PtInRect", "User32.dll");
external(INT, "BitBlt", "BitBlt", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll");
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll");
external(INT, "DrawText", "DrawTextA", "User32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "Ellipse", "Ellipse", "Gdi32.dll");
win Main_Window;
int Object_Font1, old_font;
int MouseX, MouseY;
int HDC, HDC_Memory, HDC_Bitmap;
int Object_Pen1, Object_Brush1, Oject_Brush2, Object_Brush3, old_pen, old_brush;
Object_Pen1 = CreatePen(PS_NULL, 0, 0);
Object_Brush1 = CreateSolidBrush(4307199);
Oject_Brush2 = CreateSolidBrush(3309517);
Object_Brush3 = CreateSolidBrush(14013909);
int Current_Tab = 0;
int Created_Tab = 0;
string Text_Tab[3] = {"New Tab", "New Tab", "New Tab"};
int Coordinates_Tab[3][4];
Coordinates_Tab[0][0]=25; Coordinates_Tab[0][1]=10; Coordinates_Tab[0][2]=150; Coordinates_Tab[0][3]=40;
Coordinates_Tab[1][0]=155; Coordinates_Tab[1][1]=10; Coordinates_Tab[1][2]=280; Coordinates_Tab[1][3]=40;
Coordinates_Tab[2][0]=285; Coordinates_Tab[2][1]=10; Coordinates_Tab[2][2]=410; Coordinates_Tab[2][3]=40;
int Coordinates_Plus[1][4];
Coordinates_Plus[0][0] = 25; Coordinates_Plus[0][1] = 10; Coordinates_Plus[0][2] = 47; Coordinates_Plus[0][3] = 31;
int Coordinates_Minus[3][4];
Coordinates_Minus[0][0] = 135; Coordinates_Minus[0][1] = 7; Coordinates_Minus[0][2] = 145; Coordinates_Minus[0][3] = 22;
Coordinates_Minus[1][0] = 265; Coordinates_Minus[1][1] = 7; Coordinates_Minus[1][2] = 275; Coordinates_Minus[1][3] = 22;
Coordinates_Minus[2][0] = 395; Coordinates_Minus[2][1] = 7; Coordinates_Minus[2][2] = 405; Coordinates_Minus[2][3] = 22;
int image_width = 515;
int image_height = 500;
createdialog(0);
showdialog(0, "Balloon Bot", 200, 200, 515, 500, 1, 1);
enabletimer(0);
setwindowparam(Main_Window);
while (Main_Window <= 0)
{
Main_Window = window("Balloon Bot");
sleep(100);
}
loop()
{
sleep(10);
}
function getmessage(0, WM_CREATE)
{
HDC = GetDC(gethwnd(0));
HDC_Memory = CreateCompatibleDC(HDC);
HDC_Bitmap = CreateCompatibleBitmap(HDC, image_width, image_height);
SelectObject(HDC_Memory, HDC_Bitmap);
SetBkMode(HDC_Memory, TRANSPARENT);
Object_Font1 = CreateFont(-14, 0, 0, 0, 500, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Comic Sans MS");
}
function getmessage(0, WM_MOVE)
{
pause(100);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(1))
{
while(getkeystate(1))sleep(10);
getmouse(MouseX, MouseY, formatiw(gethwnd(0)));
for(int tab_=0; tab_<Created_Tab; tab_++)
{
if(PtInRect(address(#Coordinates_Tab[tab_][0]), MouseX, MouseY))
{
Current_Tab = tab_;
break;
}
}
if(PtInRect(address(#Coordinates_Plus[0][0]), MouseX, MouseY))
{
if(Created_Tab <= 3)
{
Coordinates_Plus[0][0] = 0+Coordinates_Tab[Created_Tab][2];
Coordinates_Plus[0][2] = 22+Coordinates_Plus[0][0];
Created_Tab++;
Current_Tab = Created_Tab-1;
}
}
if(PtInRect(address(#Coordinates_Minus[0][0]), MouseX, MouseY))
{
Text_Tab[0] = "";
Created_Tab--;
}
if(PtInRect(address(#Coordinates_Minus[1][0]), MouseX, MouseY))
{
Text_Tab[1] = "";
Created_Tab--;
}
if(PtInRect(address(#Coordinates_Minus[2][0]), MouseX, MouseY))
{
Text_Tab[2] = "";
Created_Tab--;
}
}
paint();
}
function paint()
{
old_pen = SelectObject(HDC_Memory, Object_Pen1);
old_brush = SelectObject(HDC_Memory, Object_Brush3);
Rectangle(HDC_Memory, 0, 0, image_width+1, image_height+1);
for(int i=0; i<Created_Tab; i++)
{
if (i == Current_Tab)
{
old_brush = SelectObject(HDC_Memory, Object_Brush1);
}
else
{
old_brush = SelectObject(HDC_Memory, Oject_Brush2);
}
old_font = SelectObject(HDC_Memory, Object_Font1);
RoundRect(HDC_Memory, Coordinates_Tab[i][0], Coordinates_Tab[i][1], Coordinates_Tab[i][2], Coordinates_Tab[i][3], 10, 10);
SetTextColor(HDC_Memory, 0);
DrawText(HDC_Memory, Text_Tab[i], size(Text_Tab[i]), address(#Coordinates_Tab[i][0]), DT_CENTER);
DrawText(HDC_Memory, "х", 1, address(#Coordinates_Minus[i][0]), DT_CENTER);
SelectObject(HDC_Memory, old_font);
}
old_brush = SelectObject(HDC_Memory, Object_Brush1);//3
RoundRect(HDC_Memory, 10, 30, 500, 250, 10, 10);
if(Created_Tab < 3)
{
RoundRect(HDC_Memory, Coordinates_Plus[0][0], Coordinates_Plus[0][1], Coordinates_Plus[0][2], Coordinates_Plus[0][3], 10, 10);
DrawText(HDC_Memory, "+", 1, address(#Coordinates_Plus[0][0]), DT_CENTER);
//RoundRect(HDC_Memory, Coordinates_Minus[0][0], Coordinates_Minus[0][1], Coordinates_Minus[0][2], Coordinates_Minus[0][3], 10, 10);
}
SelectObject(HDC_Memory, old_brush);
SelectObject(HDC_Memory, old_pen);
BitBlt(HDC, 0, 0, image_width, image_height, HDC_Memory, 0, 0, SRCCOPY);
}
|
|
|
|