007wan |
Отправлено: 21 Сентября, 2019 - 09:18:03
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Как вывести контрол на рабочий стол без диалога? в строчке, где gethwnd(0); писал уже всякие форматы(formatiw(w) итд), но без результатно
(Добавление)
Как поставить условие: Если нажали 1 раз ПКМ, ЛКМ, СРМ, то проверяем на ЗАЖАТОСТЬ(ЕСЛИ они зажаты, то ничего, если не зажаты, то сообщение), ЕСЛИ не нажали - ничего.
Примерное так получилось
Цитата: if(getkeystate(1) || getkeystate(2) || getkeystate(4) && mousedown(LEFT) != 1)
(Добавление)
Что не так делаю?
Tab баганутый.
CODE:
char Buffer3[255];
int Histance;
int Selected_Tab1 = 0;
int TAGTCITEMA[7] = {TCIF_TEXT, 0, 0, address(#Buffer3[0]), size(#Buffer3[0]), 0, 0};
function getmessage(1, WM_CREATE)
{
Histance = GetWindowLong(gethwnd(1), GWL_HINSTANCE);
Object_Tab1 = CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD | TCS_HOTTRACK | TCS_TOOLTIPS, 10, 10, 375, 253, gethwnd(1), 0, Histance, 0, 0);
strcpy(#Buffer3[0], "Основные");
sendmessage(TCM_INSERTITEM, 0, address(#TAGTCITEMA[0]), formatiw(Object_Tab1));
sleep(100);
strcpy(#Buffer3[0], "Настройки программы");
sendmessage(TCM_INSERTITEM, 1, address(#TAGTCITEMA[0]), formatiw(Object_Tab1));
sleep(100);
strcpy(#Buffer3[0], "О программе");
sendmessage(TCM_INSERTITEM, 2, address(#TAGTCITEMA[0]), formatiw(Object_Tab1));
}
WM_CREATE 1 (Отобразить)CODE:function getmessage(1, WM_CREATE)
{
SecondaryWindow = formatiw(gethwnd(1));
Histance = GetWindowLong(gethwnd(1), GWL_HINSTANCE);
SetWindowLong(gethwnd(1), GWL_STYLE, WS_SYSMENU + WS_CAPTION);
Object_Icon2 = LoadImage(0, temp_fold+"prog2.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE | LR_LOADTRANSPARENT);
SendMessage(gethwnd(1), WM_SETICON, ICON_SMALL, Object_Icon2);
Object_Font1 = CreateFont(-13, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Times New Roman");
Object_Tab1 = CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD | TCS_HOTTRACK | TCS_TOOLTIPS, 10, 10, 375, 253, gethwnd(1), 0, Histance, 0, 0);
strcpy(#Buffer3[0], "Основные");
sendmessage(TCM_INSERTITEM, 0, address(#TAGTCITEMA[0]), formatiw(Object_Tab1));
sleep(100);
strcpy(#Buffer3[0], "Настройка бота");
sendmessage(TCM_INSERTITEM, 1, address(#TAGTCITEMA[0]), formatiw(Object_Tab1));
sleep(100);
strcpy(#Buffer3[0], "О программе");
sendmessage(TCM_INSERTITEM, 2, address(#TAGTCITEMA[0]), formatiw(Object_Tab1));
for (int a=0; a<sizearray(Object_Checkbox); a++)
{
if (a < sizearray(Object_Checkbox))
{
Object_Checkbox[a] = CreateWindow(0, "BUTTON", Text_Checkbox1[a], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 40+step1, 300-step1, 20, gethwnd(1), 0, 0, 0);
SendMessage(Object_Checkbox[a], WM_SETFONT, Object_Font1, 1);
step1 = step1+20;
}
}
//=============
for (int k=0; k<sizearray(Object_Checkbox2); k++)
{
if (k < sizearray(Object_Checkbox2))
{
Object_Checkbox2[k] = CreateWindow(0, "BUTTON", Text_Checkbox2[k], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 40+step2, 200-step2, 20, gethwnd(1), 0, 0, 0);
SendMessage(Object_Checkbox2[k], WM_SETFONT, Object_Font1, 1);
step2 = step2+20;
}
}
//=====================
for (int wb=0; wb<sizearray(Object_Static); wb++)
{
Object_Static[wb] = CreateWindow(0, "STATIC", Text_Static[wb], WS_CHILD | WS_VISIBLE | SS_NOTIFY, 20, 40+step3, 300, 20, gethwnd(1), 0, 0, 0);
SendMessage(Object_Static[wb], WM_SETFONT, Object_Font1, 1);
step3 = step3+25;
}
Object_Edit1 = CreateWindow(WS_EX_CLIENTEDGE, "EDIT", individualcode(), WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | ES_CENTER | ES_READONLY, 150, 140, 100, 20, gethwnd(1), 0, 0, 0);
if (Registered_User == 1)
{
SetWindowTextA(Object_Static[5], "Лицензия: <"+format(Difference)+" дней");
}
else
{
SetWindowTextA(Object_Static[5], "Лицензия: Отсутствует");
}
MoveWindow(Object_Static[4], 20, 140, 100, 20);
SetWindowTextA(Object_Static[0], "Версия: "+Version_Program);
SendMessage(Object_Edit1, WM_SETFONT, Object_Font1, 1);
} Файл констант в теме external 4 |
|
|
007wan |
Отправлено: 25 Сентября, 2019 - 12:40:46
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Доработал механизм "Поверхности окна над другими окнами".
Код (Отобразить)CODE:
Window_Topmost("Start_Program");//вставить после запуска диалога основного
Window_Topmost("Open_Settings");//после появления диалога настроек
Window_Topmost("Close_Settings");//после уничтожения или скрытия диалога
function Window_Topmost(string Action)
{
Load_Settings();//загружаем настройки из файла
MainWindow = window("диалог1");//получаем указатели для диалога основного
SecondaryWindow = window("диалог2");/получаем указатели для диалога настроек
if (Action == "Start_Program")//если вызвали после создания основного...
{
if (Load_Checkbox[4] == 1)//если загруженная галочка равна 1
{
SetWindowPos(gethwnd(0), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);//сделать оснувную программу поверх
}
}
//=====================
if (Action == "Open_Settings")//открыли настройки
{
if (Load_Checkbox[4] == 1)
{
SetWindowPos(gethwnd(0), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
SetWindowPos(gethwnd(1), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
else
{
SetWindowPos(gethwnd(0), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
SetWindowPos(gethwnd(1), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
}
//=====================
if (Action == "Close_Settings")//закрыли настройки
{
if (Load_Checkbox[4] == 1)
{
SetWindowPos(gethwnd(0), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
else
{
SetWindowPos(gethwnd(0), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
}
}
Если кому интересно, выложу всё остальное, а то у меня пока времени не находится всё это искать
(Добавление)
Вопрос:
Цитата: loadimage (#Image_0[0][0], temp_fold+"Image_"+format(tr)+".bmp"); Как вместо "0" красного постепенно добавлять +1, потом 2, 3..? Как объявить, что бы так прибавлять?
(Добавление)
CODE:loadimage (#Image_[color=red]+tr[/color][0][0], temp_fold+"Image_"+format(tr)+".bmp"); Никак не работает. |
|
|
Zireael |
Отправлено: 25 Сентября, 2019 - 13:24:06
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как объявить
CODE:int Image[10][100][100]; // массив для 10 картинок размером не более 100*100 |
|
|
007wan |
Отправлено: 25 Сентября, 2019 - 13:27:23
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Zireael пишет: // массив для 10 картинок размером не более 100*100
А если массив меньше 100, то он загрузит картинку, например, с высотой 48, а шириной 54, то тогда 100 минус 48 для высоты остальные 52 будут черные пиксели? А для ширины 100 минус 54 и 48 остальных пикселей будут черные?
(Добавление)
Zireael , Zireael пишет: int Image[10][100][100]; // массив для 10 картинок размером не более 100*100
Как сделать, что бы выглядело грамотно и без ошибок что-то типа этого.
CODE:int Image[10][100][100]; // массив для 10 картинок размером не более 100*100
int Verify_Image[sizearray(Image)];//Ощибка
Просто не хочу в каждые переменные вписывать количество изображений, а то могу забыть или вовсе напортачить. |
|
|
Zireael |
Отправлено: 25 Сентября, 2019 - 13:32:49
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: int Image[10][100][100]; // массив для 10 картинок размером не более 100*100
int Verify_Image[sizearray(Image)];//Ощибка
CODE:int Image[10][100][100]; // массив для 10 картинок размером не более 100*100
new int Verify_Image[sizearray(Image)]; |
|
|
007wan |
Отправлено: 25 Сентября, 2019 - 13:45:10
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Zireael пишет: Не понятно что имеется виду.
Есть
CODE:int a;//глобальная переменная
function gf()
{
int b;//не глобальная, только для этой функции
}
А я хочу
CODE:
function gt()
{
global new int go;//будет объявлена в этом месте или в любой функции или таймере, но глобальная (для всего кода)
//*хотя global - выход на глобальную метку
}
---
А это нормальное явление?
CODE:function Checking_Files()
{
int Image[3][100][100];
char Md5[32];
new string Hash_Images[sizearray(Image)] = //отсутп new string
{"7330666d94ccf730d332fcf311e09eea",
"33042642b0f9d1c13db4b3a43c540613",
"6aec253fda23825e879ac87cf822037a"};
new int Verify_Image[sizearray(Image)];
}
function Checking_Files1()
{
int Image[3][100][100];
char Md5[32];
new string Hash_Images[sizearray(Image)] = {"7330666d94ccf730d332fcf311e09eea", "33042642b0f9d1c13db4b3a43c540613", "6aec253fda23825e879ac87cf822037a"};
new int Verify_Image[sizearray(Image)];
} |
|
|
|