Valfedem |
Отправлено: 31 Декабря, 2020 - 19:22:08
|
Прохожий
Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2020
Репутация: 0
|
Zireael пишет: Сгенерированный код не редактировался?
Скиньте код или ссылку на файл с кодом.
Код не редактировался. (для просмотра ссылки Вам необходимо авторизоваться) (Добавление)(для просмотра ссылки Вам необходимо авторизоваться) Код невезучий какой-то. ссылка в браузере открывается, но не здесь.
(Добавление)
CODE:int pos_size_button0[40][4];
string text_button0[40];
int flag_button0[40];
pos_size_button0[0][0]=30; pos_size_button0[0][1]=60; pos_size_button0[0][2]=15; pos_size_button0[0][3]=15;
pos_size_button0[1][0]=45; pos_size_button0[1][1]=60; pos_size_button0[1][2]=15; pos_size_button0[1][3]=15;
pos_size_button0[2][0]=60; pos_size_button0[2][1]=60; pos_size_button0[2][2]=15; pos_size_button0[2][3]=15;
pos_size_button0[3][0]=75; pos_size_button0[3][1]=60; pos_size_button0[3][2]=15; pos_size_button0[3][3]=15;
pos_size_button0[4][0]=165; pos_size_button0[4][1]=75; pos_size_button0[4][2]=15; pos_size_button0[4][3]=15;
pos_size_button0[5][0]=90; pos_size_button0[5][1]=60; pos_size_button0[5][2]=15; pos_size_button0[5][3]=15;
pos_size_button0[6][0]=105; pos_size_button0[6][1]=60; pos_size_button0[6][2]=15; pos_size_button0[6][3]=15;
pos_size_button0[7][0]=120; pos_size_button0[7][1]=60; pos_size_button0[7][2]=15; pos_size_button0[7][3]=15;
pos_size_button0[8][0]=135; pos_size_button0[8][1]=60; pos_size_button0[8][2]=15; pos_size_button0[8][3]=15;
pos_size_button0[9][0]=150; pos_size_button0[9][1]=60; pos_size_button0[9][2]=15; pos_size_button0[9][3]=15;
pos_size_button0[10][0]=165; pos_size_button0[10][1]=60; pos_size_button0[10][2]=15; pos_size_button0[10][3]=15;
pos_size_button0[11][0]=30; pos_size_button0[11][1]=75; pos_size_button0[11][2]=15; pos_size_button0[11][3]=15;
pos_size_button0[12][0]=45; pos_size_button0[12][1]=75; pos_size_button0[12][2]=15; pos_size_button0[12][3]=15;
pos_size_button0[13][0]=60; pos_size_button0[13][1]=75; pos_size_button0[13][2]=15; pos_size_button0[13][3]=15;
pos_size_button0[14][0]=75; pos_size_button0[14][1]=75; pos_size_button0[14][2]=15; pos_size_button0[14][3]=15;
pos_size_button0[15][0]=90; pos_size_button0[15][1]=75; pos_size_button0[15][2]=15; pos_size_button0[15][3]=15;
pos_size_button0[16][0]=105; pos_size_button0[16][1]=75; pos_size_button0[16][2]=15; pos_size_button0[16][3]=15;
pos_size_button0[17][0]=120; pos_size_button0[17][1]=75; pos_size_button0[17][2]=15; pos_size_button0[17][3]=15;
pos_size_button0[18][0]=135; pos_size_button0[18][1]=75; pos_size_button0[18][2]=15; pos_size_button0[18][3]=15;
pos_size_button0[19][0]=150; pos_size_button0[19][1]=75; pos_size_button0[19][2]=15; pos_size_button0[19][3]=15;
pos_size_button0[20][0]=135; pos_size_button0[20][1]=75; pos_size_button0[20][2]=15; pos_size_button0[20][3]=15;
pos_size_button0[21][0]=30; pos_size_button0[21][1]=90; pos_size_button0[21][2]=15; pos_size_button0[21][3]=15;
pos_size_button0[22][0]=45; pos_size_button0[22][1]=90; pos_size_button0[22][2]=15; pos_size_button0[22][3]=15;
pos_size_button0[23][0]=60; pos_size_button0[23][1]=90; pos_size_button0[23][2]=15; pos_size_button0[23][3]=15;
pos_size_button0[24][0]=75; pos_size_button0[24][1]=90; pos_size_button0[24][2]=15; pos_size_button0[24][3]=15;
pos_size_button0[25][0]=90; pos_size_button0[25][1]=90; pos_size_button0[25][2]=15; pos_size_button0[25][3]=15;
pos_size_button0[26][0]=105; pos_size_button0[26][1]=90; pos_size_button0[26][2]=15; pos_size_button0[26][3]=15;
pos_size_button0[27][0]=120; pos_size_button0[27][1]=90; pos_size_button0[27][2]=15; pos_size_button0[27][3]=15;
pos_size_button0[28][0]=135; pos_size_button0[28][1]=90; pos_size_button0[28][2]=15; pos_size_button0[28][3]=15;
pos_size_button0[29][0]=150; pos_size_button0[29][1]=90; pos_size_button0[29][2]=15; pos_size_button0[29][3]=15;
pos_size_button0[30][0]=30; pos_size_button0[30][1]=105; pos_size_button0[30][2]=15; pos_size_button0[30][3]=15;
//pos_size_button0[22][0]=45; pos_size_button0[22][1]=90; pos_size_button0[22][2]=15; pos_size_button0[22][3]=15;
//pos_size_button0[23][0]=60; pos_size_button0[23][1]=90; pos_size_button0[23][2]=15; pos_size_button0[23][3]=15;
//pos_size_button0[24][0]=75; pos_size_button0[24][1]=90; pos_size_button0[24][2]=15; pos_size_button0[24][3]=15;
//pos_size_button0[25][0]=90; pos_size_button0[25][1]=90; pos_size_button0[25][2]=15; pos_size_button0[25][3]=15;
//pos_size_button0[26][0]=105; pos_size_button0[26][1]=90; pos_size_button0[26][2]=15; pos_size_button0[26][3]=15;
//pos_size_button0[27][0]=120; pos_size_button0[27][1]=90; pos_size_button0[27][2]=15; pos_size_button0[27][3]=15;
//pos_size_button0[28][0]=135; pos_size_button0[28][1]=90; pos_size_button0[28][2]=15; pos_size_button0[28][3]=15;
//pos_size_button0[29][0]=150; pos_size_button0[29][1]=90; pos_size_button0[29][2]=15; pos_size_button0[29][3]=15;
text_button0[0]="1"; text_button0[1]="2"; text_button0[2]="3"; text_button0[3]="4"; text_button0[4]="20";
text_button0[5]="5"; text_button0[6]="6"; text_button0[7]="7"; text_button0[8]="8"; text_button0[9]="9";
text_button0[10]="10"; text_button0[11]="11"; text_button0[12]="12"; text_button0[13]="13"; text_button0[14]="14";
text_button0[15]="15"; text_button0[16]="16"; text_button0[17]="17"; text_button0[18]="18"; text_button0[19]="19";
text_button0[20]="20"; text_button0[21]="21"; text_button0[22]="22"; text_button0[23]="23"; text_button0[24]="24";
text_button0[25]="25"; text_button0[26]="26"; text_button0[27]="27"; text_button0[28]="28"; text_button0[29]="29";
text_button0[30]="30";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "10x10 не получится", 797, 320, 552, 449, 1, 1);
//////////
loop() sleep(10);//Убрать после теста (Отредактировано автором: 31 Декабря, 2020 - 19:32:01) |
|
|
Zireael |
Отправлено: 31 Декабря, 2020 - 20:07:54
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Много кнопок. Ограничение 30 шт, т. к. индексация начинается с 0, то text_button0[30]="30"; это уже 31 кнопка, из-за этого вылет.
Используйте getmessage - Создание функций вызываемых при получение какого нибудь сообщения диалоговым окном
Пример (Отобразить)CODE:#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WM_GETFONT 0x0031
#define TRUE 1
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
int button0[3]; // массив для 3х кнопок
createdialog(0);
showdialog(0, "10x10",500, 400, 300, 300, 1, 1);
loop()sleep(10);
// вызов функции при создании окна
function getmessage(0, WM_CREATE)
{
int h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Times New Roman"); // создать шрифт
button0[0]=CreateWindow(0, "BUTTON", "1", WS_CHILD | WS_VISIBLE , 30, 60, 15, 15, gethwnd(0), 0, 0, 0); // создать кнопку
button0[1]=CreateWindow(0, "BUTTON", "2", WS_CHILD | WS_VISIBLE , 45, 60, 15, 15, gethwnd(0), 0, 0, 0); // создать кнопку
button0[2]=CreateWindow(0, "BUTTON", "3", WS_CHILD | WS_VISIBLE , 60, 60, 15, 15, gethwnd(0), 0, 0, 0); // создать кнопку
// установить шрифт для всех кнопок
for(int i=0; i<sizearray(button0); i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(button0[i]));
}
// обработка сообщений
function getmessage(0, WM_COMMAND)
{
if(message.lparam==button0[0]) // если нажата кнопка
{
// тут нужный код
messagebox("Pressed Button1");
return;
}
if(message.lparam==button0[1]) // если нажата кнопка
{
messagebox("Pressed Button2");
return;
}
if(message.lparam==button0[2]) // если нажата кнопка
{
messagebox("Pressed Button3");
return;
}
}
Количество кнопок не ограничено. |
|
|
Valfedem |
Отправлено: 31 Декабря, 2020 - 20:39:57
|
Прохожий
Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2020
Репутация: 0
|
Zireael пишет: Много кнопок. Ограничение 30 шт, т. к. индексация начинается с 0, то text_button0[30]="30"; это уже 31 кнопка, из-за этого вылет.
Используйте getmessage - Создание функций вызываемых при получение какого нибудь сообщения диалоговым окном
Пример (Отобразить)CODE:#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WM_GETFONT 0x0031
#define TRUE 1
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
int button0[3]; // массив для 3х кнопок
createdialog(0);
showdialog(0, "10x10",500, 400, 300, 300, 1, 1);
loop()sleep(10);
// вызов функции при создании окна
function getmessage(0, WM_CREATE)
{
int h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Times New Roman"); // создать шрифт
button0[0]=CreateWindow(0, "BUTTON", "1", WS_CHILD | WS_VISIBLE , 30, 60, 15, 15, gethwnd(0), 0, 0, 0); // создать кнопку
button0[1]=CreateWindow(0, "BUTTON", "2", WS_CHILD | WS_VISIBLE , 45, 60, 15, 15, gethwnd(0), 0, 0, 0); // создать кнопку
button0[2]=CreateWindow(0, "BUTTON", "3", WS_CHILD | WS_VISIBLE , 60, 60, 15, 15, gethwnd(0), 0, 0, 0); // создать кнопку
// установить шрифт для всех кнопок
for(int i=0; i<sizearray(button0); i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(button0[i]));
}
// обработка сообщений
function getmessage(0, WM_COMMAND)
{
if(message.lparam==button0[0]) // если нажата кнопка
{
// тут нужный код
messagebox("Pressed Button1");
return;
}
if(message.lparam==button0[1]) // если нажата кнопка
{
messagebox("Pressed Button2");
return;
}
if(message.lparam==button0[2]) // если нажата кнопка
{
messagebox("Pressed Button3");
return;
}
}
Количество кнопок не ограничено.
Спасибо за подсказку. А кнопок мне надобно было 121 шт. Это для просмотрового окна 11x11 на кнопках для просмотра кроссвордной сетки 70x70. [img](для просмотра ссылки Вам необходимо авторизоваться) /img] |
|
|
|