Задействованные темы
cuttext (для просмотра ссылки Вам необходимо авторизоваться)
Код создания диалогового окна
CODE:
#define WS_MINIMIZEBOX 131072
#define WS_MAXIMIZEBOX 65536
#define WS_VISIBLE 268435456
#define WS_CAPTION 12582912
#define WS_SYSMENU 524288
#define WS_CHILD 1073741824
#define ES_CENTER 0x00000001
#define COLOR_APPWORKSPACE 12
#define WM_LBUTTONDOWN 513
#define WM_COMMAND 273
#define WM_CREATE 1
#define WM_LBUTTONDOWN 513
external(INT, "RegisterClass", "RegisterClassA", "User32.dll" );
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "UnregisterClass", "UnregisterClassA", "User32.dll");
external(INT, "ShowWindow", "ShowWindow", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
////////////////////
int button_[100];
int static_[3][100];
int edit_[3][17][100];
string Name_[3][100];
string Par_[3][20][100];
int KS=10;
int WinProc=address("WindowProc");
char Class[8]={'m', 'y', 'c', 'l', 'a', 's', 's', 0};
int PWNDCLASS[10];//Структура WNDCLASS
int CLASS=address(#PWNDCLASS[0]);//Указатель на структуру класа
initialarray(#PWNDCLASS[0], 0);//Обнуляем структуру
writeaddress(WinProc, address(#PWNDCLASS[1]));//Указываем адрес функции WindowProc
writeaddress(COLOR_APPWORKSPACE, address(#PWNDCLASS[7]));//Указываем цвет диалога
writeaddress(address(#Class[0]), address(#PWNDCLASS[9]));//Указываем указатель на название класа
if (RegisterClass(CLASS)==0){messagebox("Не удалось зарегистрировать клас"); goto STOP;}
int Win=CreateWindow(0, address(#Class[0]), "Сканер Букмекерских контор",
WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU,
10, 10, 1425, 1000, 0, 0, 0, 0);
ShowWindow(gethwnd(), SW_HIDE);
/////////////////////
loop() sleep(10);
STOP:;
//Тут можно создавать контролы для окна, поскольку оно одно и мы можем указать родительским окном для контролов message.hwnd
function getmessage(WM_CREATE)
{
for (int s=0; s<KS; s++)
{
button_[s]=CreateWindow(0, "BUTTON", "Перейти на сайты", WS_VISIBLE | WS_CHILD, 1282, 10+s*90+23, 130, 22, message.hwnd, 0, 0, 0);
for (int s1=0; s1<3; s1++)
{
static_[s1][s]=CreateWindow(0, "STATIC", "", WS_VISIBLE | WS_CHILD, 10, 10+s*90+s1*25, 300, 18, message.hwnd, 0, 0, 0);
Name_[s1][s]="";
for (int s2=0; s2<17; s2++)
{
edit_[s1][s2][s]=CreateWindow(0, "EDIT", "", ES_CENTER | WS_VISIBLE | WS_CHILD, 320+s2*56, 10+s*90+s1*25, 54, 18, message.hwnd, 0, 0, 0);
Par_[s1][s2][s]="";
}
}
}
}
function getmessage(WM_COMMAND)
{
//Демо
for (int s=0; s<KS; s++)
{
if (message.lparam==button_[s])//Если кнопка
{
Name_[1][s]="Название команды";
SetWindowText(static_[1][s], Name_[1][s]);
Par_[1][5][s]=format(s);
SetWindowText(edit_[1][5][s], Par_[1][5][s]);
break;
}
}
}
function getmessage(WM_CLOSE)
{
UnregisterClass(address(#Class[0]), 0);
goto global STOP;
}
#define WS_MAXIMIZEBOX 65536
#define WS_VISIBLE 268435456
#define WS_CAPTION 12582912
#define WS_SYSMENU 524288
#define WS_CHILD 1073741824
#define ES_CENTER 0x00000001
#define COLOR_APPWORKSPACE 12
#define WM_LBUTTONDOWN 513
#define WM_COMMAND 273
#define WM_CREATE 1
#define WM_LBUTTONDOWN 513
external(INT, "RegisterClass", "RegisterClassA", "User32.dll" );
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "UnregisterClass", "UnregisterClassA", "User32.dll");
external(INT, "ShowWindow", "ShowWindow", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
////////////////////
int button_[100];
int static_[3][100];
int edit_[3][17][100];
string Name_[3][100];
string Par_[3][20][100];
int KS=10;
int WinProc=address("WindowProc");
char Class[8]={'m', 'y', 'c', 'l', 'a', 's', 's', 0};
int PWNDCLASS[10];//Структура WNDCLASS
int CLASS=address(#PWNDCLASS[0]);//Указатель на структуру класа
initialarray(#PWNDCLASS[0], 0);//Обнуляем структуру
writeaddress(WinProc, address(#PWNDCLASS[1]));//Указываем адрес функции WindowProc
writeaddress(COLOR_APPWORKSPACE, address(#PWNDCLASS[7]));//Указываем цвет диалога
writeaddress(address(#Class[0]), address(#PWNDCLASS[9]));//Указываем указатель на название класа
if (RegisterClass(CLASS)==0){messagebox("Не удалось зарегистрировать клас"); goto STOP;}
int Win=CreateWindow(0, address(#Class[0]), "Сканер Букмекерских контор",
WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU,
10, 10, 1425, 1000, 0, 0, 0, 0);
ShowWindow(gethwnd(), SW_HIDE);
/////////////////////
loop() sleep(10);
STOP:;
//Тут можно создавать контролы для окна, поскольку оно одно и мы можем указать родительским окном для контролов message.hwnd
function getmessage(WM_CREATE)
{
for (int s=0; s<KS; s++)
{
button_[s]=CreateWindow(0, "BUTTON", "Перейти на сайты", WS_VISIBLE | WS_CHILD, 1282, 10+s*90+23, 130, 22, message.hwnd, 0, 0, 0);
for (int s1=0; s1<3; s1++)
{
static_[s1][s]=CreateWindow(0, "STATIC", "", WS_VISIBLE | WS_CHILD, 10, 10+s*90+s1*25, 300, 18, message.hwnd, 0, 0, 0);
Name_[s1][s]="";
for (int s2=0; s2<17; s2++)
{
edit_[s1][s2][s]=CreateWindow(0, "EDIT", "", ES_CENTER | WS_VISIBLE | WS_CHILD, 320+s2*56, 10+s*90+s1*25, 54, 18, message.hwnd, 0, 0, 0);
Par_[s1][s2][s]="";
}
}
}
}
function getmessage(WM_COMMAND)
{
//Демо
for (int s=0; s<KS; s++)
{
if (message.lparam==button_[s])//Если кнопка
{
Name_[1][s]="Название команды";
SetWindowText(static_[1][s], Name_[1][s]);
Par_[1][5][s]=format(s);
SetWindowText(edit_[1][5][s], Par_[1][5][s]);
break;
}
}
}
function getmessage(WM_CLOSE)
{
UnregisterClass(address(#Class[0]), 0);
goto global STOP;
}