Zireael |
Отправлено: 17 Августа, 2019 - 15:19:19
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как сделать, что бы она ровно 2 секунды стояла пустой.
Цитата: if(percent==0)
|
|
|
007wan |
Отправлено: 17 Августа, 2019 - 15:20:11
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: Как сделать, что бы она ровно 2 секунды стояла пустой.
Цитата: if(percent==0)
Я про то, что А почему при запуске "0%" и через пару секунд полоса загрузки чуть прибавляется вправо и еще через 2 секунды она идет своим чередом? Как сделать, что бы она ровно 2 секунды стояла пустой.
(Добавление)
007wan пишет: Как сделать, что бы она ровно 2 секунды стояла пустой. Полоса была в 0% ровно пустой, а она чуть-чуть прибавлена
(Добавление)
Короче. Запусти Код (Отобразить)CODE:#define GRADIENT_FILL_RECT_H 0
#define GRADIENT_FILL_RECT_V 1
#define PS_DASH 1
#define SRCCOPY 13369376
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "DeleteDC", "DeleteDC", "Gdi32.dll");
external(INT, "ReleaseDC", "ReleaseDC", "User32.dll");
external(INT, "GradientFill", "GradientFill", "Msimg32.dll" );
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll" );
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll" );
external(INT, "BitBlt", "BitBlt", "Gdi32.dll" );
external(INT, "TextOut", "TextOutA", "Gdi32.dll" );
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll" );
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll" );
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
getdisplay(Display_Color, Display_Width, Display_Height);
int font = CreateFont(14, 0, 0, 0, 100, 0, 0, 0, RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, CLEARTYPE_QUALITY, FF_DONTCARE, "Arial");
int coord_rectangle[4]={Display_Width/2-130, Display_Height/2-100, 300, 130};
#definefile "C:\Users\Home\Desktop\МОЁ\Kibor\Constants.txt";
int Display_Color, Display_Width, Display_Height;
int hdc, DC, bitmapDC;
hdc = GetDC(0);
DC = CreateCompatibleDC(hdc);
bitmapDC = CreateCompatibleBitmap(hdc, coord_rectangle[2], coord_rectangle[3]);
SelectObject(DC, bitmapDC);
int Select_Pen1, Select_Brush1;
int Object_Pen1, Object_Brush1;
char TRIVERTEX[64];
int coord[8] = {20, 55, 280, 65, 20, 55, 280, 65};
int color[4] = {3329330, 0, 9470064, 65539};
int rect[4] = {0, 1, 2, 3};
Object_Pen1 = CreatePen(PS_INSIDEFRAME, 2, 6908265);
Object_Brush1 = CreateSolidBrush(15790320);
for(int i=0; i<=coord[2]-coord[0]; i=i+(coord[2]-coord[0])/100)
{
int percent = i/(coord[2]-coord[0])*100;
coord[4] = coord[0]+i;
fill_structure(#TRIVERTEX[0], #coord[0], #color[0]);
Select_Pen1 = SelectObject(DC, Object_Pen1);
Select_Brush1 = SelectObject(DC, Object_Brush1);
Rectangle(DC, 0, 0, coord_rectangle[2], coord_rectangle[3]);
SetTextColor(DC, 255);
SetBkMode(DC, 1);
TextOut(DC, 120, 10, "K2019Bot", 8);
TextOut(DC, 240, 70, format(percent)+"%", size(format(percent))+1);
int old_font = SelectObject (DC, font);
TextOut(DC, 20, 70, "Unpack: C:\...\Temp\Image_0.bmp", 31);
SelectObject (DC, old_font);
GradientFill(DC, address(#TRIVERTEX[0]), 4, address(#rect[0]), 2, GRADIENT_FILL_RECT_V); // рисование
if(percent == 0)
{
looptime(2000)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
}
looptime(10)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
if(percent == 100)
{
looptime(2000)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
}
}
SelectObject(DC, Select_Pen1);
SelectObject(DC, Select_Brush1);
DeleteDC(DC);
DeleteObject(bitmapDC);
ReleaseDC(0, hdc);
function fill_structure(char #Vertex, int #pos, int #c)
{
for(int i=0; i<2; i++)
{
codhex(pos[i*4], #Vertex[i*32]);
codhex(pos[i*4+1], #Vertex[i*32+4]);
codhex(rvalue(c[i*2]) * 256, #Vertex[i*32+8]);
codhex(gvalue(c[i*2]) * 256, #Vertex[i*32+10]);
codhex(bvalue(c[i*2]) * 256, #Vertex[i*32+12]);
codhex(pos[i*4+2], #Vertex[i*32+16]);
codhex(pos[i*4+3], #Vertex[i*32+20]);
codhex(rvalue(c[i*2+1]) * 256, #Vertex[i*32+24]);
codhex(gvalue(c[i*2+1]) * 256, #Vertex[i*32+26]);
codhex(bvalue(c[i*2+1]) * 256, #Vertex[i*32+28]);
}
}
И вводи взгляд сначала на 0%, потом на начала полосы и так резко и быстро и ты поймешь, что через пару секунд на 0% полоса чуть прибавилась, так не должно быть. |
|
|
007wan |
Отправлено: 17 Августа, 2019 - 15:28:51
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Для особо одарённых повторяю:
Вместо этого if(percent==0)
Это if(i==0) Ай, блин на своей волне. ничего не понял сначала. Сильно извиняюсь))
(Добавление)
Всё работает как нужно. Благодарю.
(Добавление)
Вот финальная версия того, что я хотел. Можно было еще добавить иконку программы и даже типа ниже "show details", а при нажатии на эту надпись появляется 3 строчки с ползунком, на котором написано в квадратике ползунка цифры, указывающие его положение, например, "1" - самое начало. Но мне этого не надо. Я просто рассказал, как можно довести до идеала и даже лучше.
(Добавление)
Может кому понадобится.Код (Отобразить)CODE:#define GRADIENT_FILL_RECT_H 0
#define GRADIENT_FILL_RECT_V 1
#define PS_DASH 1
#define SRCCOPY 13369376
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "DeleteDC", "DeleteDC", "Gdi32.dll");
external(INT, "ReleaseDC", "ReleaseDC", "User32.dll");
external(INT, "GradientFill", "GradientFill", "Msimg32.dll" );
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll" );
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll" );
external(INT, "BitBlt", "BitBlt", "Gdi32.dll" );
external(INT, "TextOut", "TextOutA", "Gdi32.dll" );
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll" );
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll" );
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
getdisplay(Display_Color, Display_Width, Display_Height);
int font = CreateFont(14, 0, 0, 0, 100, 0, 0, 0, RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, CLEARTYPE_QUALITY, FF_DONTCARE, "Arial");
int coord_rectangle[4]={Display_Width/2-130, Display_Height/2-100, 300, 130};
#definefile "C:\Users\Home\Desktop\МОЁ\Kibor\Constants.txt";
int Display_Color, Display_Width, Display_Height;
int hdc, DC, bitmapDC;
hdc = GetDC(0);
DC = CreateCompatibleDC(hdc);
bitmapDC = CreateCompatibleBitmap(hdc, coord_rectangle[2], coord_rectangle[3]);
SelectObject(DC, bitmapDC);
int Select_Pen1, Select_Brush1;
int Object_Pen1, Object_Brush1;
char TRIVERTEX[64];
int coord[8] = {20, 55, 280, 65, 20, 55, 280, 65};
int color[4] = {3329330, 0, 9470064, 65539};
int rect[4] = {0, 1, 2, 3};
Object_Pen1 = CreatePen(PS_INSIDEFRAME, 2, 6908265);
Object_Brush1 = CreateSolidBrush(15790320);
for(int i=0; i<=coord[2]-coord[0]; i=i+(coord[2]-coord[0])/100)
{
int percent = i/(coord[2]-coord[0])*100;
coord[4] = coord[0]+i;
fill_structure(#TRIVERTEX[0], #coord[0], #color[0]);
Select_Pen1 = SelectObject(DC, Object_Pen1);
Select_Brush1 = SelectObject(DC, Object_Brush1);
Rectangle(DC, 0, 0, coord_rectangle[2], coord_rectangle[3]);
SetTextColor(DC, 255);
SetBkMode(DC, 1);
TextOut(DC, 120, 10, "K2019Bot", 8);
TextOut(DC, 240, 70, format(percent)+"%", size(format(percent))+1);
int old_font = SelectObject (DC, font);
TextOut(DC, 20, 70, "Unpack: C:\...\Temp\Image_0.bmp", 31);
SelectObject (DC, old_font);
GradientFill(DC, address(#TRIVERTEX[0]), 4, address(#rect[0]), 2, GRADIENT_FILL_RECT_V); // рисование
if(i == 0)
{
looptime(2000)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
}
looptime(10)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
if(percent == 100)
{
looptime(2000)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
}
}
SelectObject(DC, Select_Pen1);
SelectObject(DC, Select_Brush1);
DeleteDC(DC);
DeleteObject(bitmapDC);
ReleaseDC(0, hdc);
function fill_structure(char #Vertex, int #pos, int #c)
{
for(int i=0; i<2; i++)
{
codhex(pos[i*4], #Vertex[i*32]);
codhex(pos[i*4+1], #Vertex[i*32+4]);
codhex(rvalue(c[i*2]) * 256, #Vertex[i*32+8]);
codhex(gvalue(c[i*2]) * 256, #Vertex[i*32+10]);
codhex(bvalue(c[i*2]) * 256, #Vertex[i*32+12]);
codhex(pos[i*4+2], #Vertex[i*32+16]);
codhex(pos[i*4+3], #Vertex[i*32+20]);
codhex(rvalue(c[i*2+1]) * 256, #Vertex[i*32+24]);
codhex(gvalue(c[i*2+1]) * 256, #Vertex[i*32+26]);
codhex(bvalue(c[i*2+1]) * 256, #Vertex[i*32+28]);
}
}
|
|
|
Zireael |
Отправлено: 17 Августа, 2019 - 19:42:16
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Можно пример с этим? ExtCreatePen
code (Отобразить)CODE:#define PS_GEOMETRIC 65536
#define PS_ENDCAP_SQUARE 256
#define PS_SOLID 0
#define PS_DASHDOT 3
#define PS_DASHDOTDOT 4
#define BS_SOLID 0
#define BS_HATCHED 2
#define HS_HORIZONTAL 0
#define HS_DIAGCROSS 5
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "MoveToEx", "MoveToEx", "Gdi32.dll");
external(INT, "LineTo", "LineTo", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "ExtCreatePen", "ExtCreatePen", "Gdi32.dll");
int LOGBRUSH1[3]={BS_HATCHED, 255, HS_DIAGCROSS}
int LOGBRUSH2[3]={BS_SOLID, 255, 0}
int LOGBRUSH3[3]={BS_HATCHED, 16000000, HS_HORIZONTAL}
int LOGBRUSH4[3]={BS_SOLID, 65280, 0}
int hdc=GetDC(0);
int pen1=ExtCreatePen(PS_GEOMETRIC, 20, address(#LOGBRUSH1[0]), 0, 0);
int pen2=ExtCreatePen(PS_GEOMETRIC | PS_DASHDOT, 10, address(#LOGBRUSH2[0]), 0, 0);
int pen3=ExtCreatePen(PS_GEOMETRIC | PS_ENDCAP_SQUARE, 15, address(#LOGBRUSH3[0]), 0, 0);
int pen4=ExtCreatePen(PS_GEOMETRIC | PS_DASHDOTDOT | PS_ENDCAP_SQUARE, 15, address(#LOGBRUSH4[0]), 0, 0);
loop()
{
MoveToEx(hdc, 100, 100, 0);
SelectObject(hdc, pen1);
LineTo(hdc, 100, 600);
MoveToEx(hdc, 200, 100, 0);
SelectObject(hdc, pen2);
LineTo(hdc, 200, 600);
MoveToEx(hdc, 300, 100, 0);
SelectObject(hdc, pen3);
LineTo(hdc, 300, 600);
MoveToEx(hdc, 400, 100, 0);
SelectObject(hdc, pen4);
LineTo(hdc, 400, 600);
sleep(1);
} |
|
|
Zireael |
Отправлено: 18 Августа, 2019 - 02:28:38
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
code (Отобразить)CODE:#define GRADIENT_FILL_RECT_V 1
#define PS_INSIDEFRAME 6
#define SRCCOPY 13369376
#define RUSSIAN_CHARSET 204
#define OUT_DEFAULT_PRECIS 0
#define CLEARTYPE_QUALITY 5
#define FF_DONTCARE 0
#define CLIP_DEFAULT_PRECIS 0
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "DeleteDC", "DeleteDC", "Gdi32.dll");
external(INT, "ReleaseDC", "ReleaseDC", "User32.dll");
external(INT, "GradientFill", "GradientFill", "Msimg32.dll" );
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll" );
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll" );
external(INT, "BitBlt", "BitBlt", "Gdi32.dll" );
external(INT, "TextOut", "TextOutA", "Gdi32.dll" );
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll" );
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll" );
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "AlphaBlend", "AlphaBlend", "Msimg32.dll" );
char BLENDFUNCTION[4]={0, 0, 20, 0}
int ftn=codhexi(#BLENDFUNCTION[0], 4);
int Display_Color, Display_Width, Display_Height;
getdisplay(Display_Color, Display_Width, Display_Height);
int font = CreateFont(14, 0, 0, 0, 100, 0, 0, 0, RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, CLEARTYPE_QUALITY, FF_DONTCARE, "Arial");
int coord_rectangle[4]={Display_Width/2-130, Display_Height/2-100, 300, 130};
int hdc, DC, bitmapDC;
hdc = GetDC(0);
DC = CreateCompatibleDC(hdc);
bitmapDC = CreateCompatibleBitmap(hdc, coord_rectangle[2], coord_rectangle[3]);
SelectObject(DC, bitmapDC);
int Select_Pen1, Select_Brush1;
int Object_Pen1, Object_Brush1;
char TRIVERTEX[64];
int coord[8] = {20, 55, 280, 65, 20, 55, 280, 65};
int color[4] = {3329330, 0, 9470064, 65539};
int rect[4] = {0, 1, 2, 3};
Object_Pen1 = CreatePen(PS_INSIDEFRAME, 2, 6908265);
Object_Brush1 = CreateSolidBrush(15790320);
for(int i=0; i<=coord[2]-coord[0]; i=i+(coord[2]-coord[0])/100)
{
int percent = i/(coord[2]-coord[0])*100;
coord[4] = coord[0]+i;
fill_structure(#TRIVERTEX[0], #coord[0], #color[0]);
Select_Pen1 = SelectObject(DC, Object_Pen1);
Select_Brush1 = SelectObject(DC, Object_Brush1);
Rectangle(DC, 0, 0, coord_rectangle[2], coord_rectangle[3]);
SetTextColor(DC, 255);
SetBkMode(DC, 1);
TextOut(DC, 120, 10, "K2019Bot", 8);
TextOut(DC, 240, 70, format(percent)+"%", size(format(percent))+1);
int old_font = SelectObject (DC, font);
TextOut(DC, 20, 70, "Unpack: C:\...\Temp\Image_0.bmp", 31);
SelectObject (DC, old_font);
GradientFill(DC, address(#TRIVERTEX[0]), 4, address(#rect[0]), 2, GRADIENT_FILL_RECT_V);
if(i == 0)
{
looptime(2000)
{
AlphaBlend(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3],
DC, 0, 0, coord_rectangle[2], coord_rectangle[3], ftn);
sleep(1);
}
}
looptime(10)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
if(percent == 100)
{
looptime(2000)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
}
}
SelectObject(DC, Select_Pen1);
SelectObject(DC, Select_Brush1);
DeleteDC(DC);
DeleteObject(bitmapDC);
ReleaseDC(0, hdc);
function fill_structure(char #Vertex, int #pos, int #c)
{
for(int i=0; i<2; i++)
{
codhex(pos[i*4], #Vertex[i*32]);
codhex(pos[i*4+1], #Vertex[i*32+4]);
codhex(rvalue(c[i*2]) * 256, #Vertex[i*32+8]);
codhex(gvalue(c[i*2]) * 256, #Vertex[i*32+10]);
codhex(bvalue(c[i*2]) * 256, #Vertex[i*32+12]);
codhex(pos[i*4+2], #Vertex[i*32+16]);
codhex(pos[i*4+3], #Vertex[i*32+20]);
codhex(rvalue(c[i*2+1]) * 256, #Vertex[i*32+24]);
codhex(gvalue(c[i*2+1]) * 256, #Vertex[i*32+26]);
codhex(bvalue(c[i*2+1]) * 256, #Vertex[i*32+28]);
}
}
Появится плавно, а не сразу. |
|
|
007wan |
Отправлено: 18 Августа, 2019 - 10:31:22
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Спасибо большое. Только не понимаю как сделать процесс обратным. В функции написано, что отображает растровые изображения с прозрачными или полупрозрачными пикселями, но как убрать изображение с таким же эффектом в конце я не знаю.
Экспериментировал сCODE:char BLENDFUNCTION[4]={0, 0, 20, 0}
int ftn=codhexi(#BLENDFUNCTION[0], 4);
Меня циферки методом тыка и вставлял даже это CODE:if(percent == 100)
{
looptime(2000)
{
AlphaBlend(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3],
DC, 0, 0, coord_rectangle[2], coord_rectangle[3], ftn);
sleep(1);
}
}
В результате не получилось.
(Добавление)
Вот что вышло короче.Код (Отобразить)CODE:#define GRADIENT_FILL_RECT_V 1
#define PS_INSIDEFRAME 6
#define SRCCOPY 13369376
#define RUSSIAN_CHARSET 204
#define OUT_DEFAULT_PRECIS 0
#define CLEARTYPE_QUALITY 5
#define FF_DONTCARE 0
#define CLIP_DEFAULT_PRECIS 0
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "DeleteDC", "DeleteDC", "Gdi32.dll");
external(INT, "ReleaseDC", "ReleaseDC", "User32.dll");
external(INT, "GradientFill", "GradientFill", "Msimg32.dll" );
external(INT, "Rectangle", "Rectangle", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "CreatePen", "CreatePen", "Gdi32.dll");
external(INT, "CreateCompatibleDC", "CreateCompatibleDC", "Gdi32.dll" );
external(INT, "CreateCompatibleBitmap", "CreateCompatibleBitmap", "Gdi32.dll" );
external(INT, "BitBlt", "BitBlt", "Gdi32.dll" );
external(INT, "TextOut", "TextOutA", "Gdi32.dll" );
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll" );
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll" );
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "AlphaBlend", "AlphaBlend", "Msimg32.dll" );
char BLENDFUNCTION[4]={0, 0, 20, 0}
int ftn=codhexi(#BLENDFUNCTION[0], 4);
char BLENDFUNCTION1[4]={0, 0, -20, 0}
int ftn1=codhexi(#BLENDFUNCTION1[0], 4);
int Display_Color, Display_Width, Display_Height;
getdisplay(Display_Color, Display_Width, Display_Height);
int font = CreateFont(14, 0, 0, 0, 100, 0, 0, 0, RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, CLEARTYPE_QUALITY, FF_DONTCARE, "Arial");
int coord_rectangle[4]={Display_Width/2-130, Display_Height/2-100, 300, 130};
int hdc, DC, bitmapDC;
hdc = GetDC(0);
DC = CreateCompatibleDC(hdc);
bitmapDC = CreateCompatibleBitmap(hdc, coord_rectangle[2], coord_rectangle[3]);
SelectObject(DC, bitmapDC);
int Select_Pen1, Select_Brush1;
int Object_Pen1, Object_Brush1;
char TRIVERTEX[64];
int coord[8] = {20, 55, 280, 65, 20, 55, 280, 65};
int color[4] = {3329330, 0, 9470064, 65539};
int rect[4] = {0, 1, 2, 3};
Object_Pen1 = CreatePen(PS_INSIDEFRAME, 2, 6908265);
Object_Brush1 = CreateSolidBrush(15790320);
for(int i=0; i<=coord[2]-coord[0]; i=i+(coord[2]-coord[0])/100)
{
int percent = i/(coord[2]-coord[0])*100;
coord[4] = coord[0]+i;
fill_structure(#TRIVERTEX[0], #coord[0], #color[0]);
Select_Pen1 = SelectObject(DC, Object_Pen1);
Select_Brush1 = SelectObject(DC, Object_Brush1);
Rectangle(DC, 0, 0, coord_rectangle[2], coord_rectangle[3]);
SetTextColor(DC, 255);
SetBkMode(DC, 1);
TextOut(DC, 120, 10, "K2019Bot", 8);
TextOut(DC, 240, 70, format(percent)+"%", size(format(percent))+1);
int old_font = SelectObject (DC, font);
TextOut(DC, 20, 70, "Unpack: C:\...\Temp\Image_0.bmp", 31);
SelectObject (DC, old_font);
GradientFill(DC, address(#TRIVERTEX[0]), 4, address(#rect[0]), 2, GRADIENT_FILL_RECT_V);
if(i == 0)
{
looptime(2000)
{
AlphaBlend(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3],
DC, 0, 0, coord_rectangle[2], coord_rectangle[3], ftn);
sleep(1);
}
}
looptime(10)
{
BitBlt(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3], DC, 0, 0, SRCCOPY);
sleep(1);
}
if(percent == 100)
{
looptime(2000)
{
AlphaBlend(hdc, coord_rectangle[0], coord_rectangle[1], coord_rectangle[2], coord_rectangle[3],
DC, 0, 0, coord_rectangle[2], coord_rectangle[3], ftn1);
sleep(1);
}
}
}
SelectObject(DC, Select_Pen1);
SelectObject(DC, Select_Brush1);
DeleteDC(DC);
DeleteObject(bitmapDC);
ReleaseDC(0, hdc);
function fill_structure(char #Vertex, int #pos, int #c)
{
for(int i=0; i<2; i++)
{
codhex(pos[i*4], #Vertex[i*32]);
codhex(pos[i*4+1], #Vertex[i*32+4]);
codhex(rvalue(c[i*2]) * 256, #Vertex[i*32+8]);
codhex(gvalue(c[i*2]) * 256, #Vertex[i*32+10]);
codhex(bvalue(c[i*2]) * 256, #Vertex[i*32+12]);
codhex(pos[i*4+2], #Vertex[i*32+16]);
codhex(pos[i*4+3], #Vertex[i*32+20]);
codhex(rvalue(c[i*2+1]) * 256, #Vertex[i*32+24]);
codhex(gvalue(c[i*2+1]) * 256, #Vertex[i*32+26]);
codhex(bvalue(c[i*2+1]) * 256, #Vertex[i*32+28]);
}
}
(Добавление)
AnimateWindow
Показать (Отобразить)CODE:external(INT, "AnimateWindow", "AnimateWindow", "User32.dll");
win dialog;
#define AW_VER_NEGATIVE 8
createdialog(0);
showdialog(0, "Äèàëîã",100, 100, 265, 200, 1, 1);
function getmessage(0, WM_CREATE)
{
dialog = formatiw(gethwnd(0));
AnimateWindow(gethwnd(0), 200, AW_VER_NEGATIVE);
}
loop()
{
sleep(10);
}
Где AW_VER_NEGATIVE 0x00000008
берем калькулятор программиста. Ставим HEX, 8 байта далее вставляем эту дичь, что с нулями и крестиками и нажимаем на Dec. Может кому-то нужно, а то я не стал все константы переводить.
(Добавление)
Работает, но хреново) |
|
|
|