CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define WS_EX_TOPMOST 0x00000008
#define WS_OVERLAPPEDWINDOW 0xCF0000
#define IDC_ARROW 32512
#define NULL 0
external(INT, "RegisterClass", "RegisterClassA", "User32.dll");
external(INT, "UnregisterClass", "UnregisterClassA", "User32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetModuleHandle", "GetModuleHandleA", "Kernel32.dll");
external(INT, "LoadCursor", "LoadCursorA", "User32.dll");
external(INT, "LoadIcon", "LoadIconA", "User32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
int fon_color = rgb(255, 0, 255); // цвет фона диалога
char Class[99];
strcpy(#Class[0], "myclass");
int PWNDCLASS[10];//Структура WNDCLASS
int CLASS=address(#PWNDCLASS[0]);//Указатель на название класса
initialarray(#PWNDCLASS[0], 0);//Обнуляем структуру
PWNDCLASS[1] = address("WindowProc");
PWNDCLASS[5] = LoadIcon(GetModuleHandle(NULL), 128); // иконка
PWNDCLASS[6] = LoadCursor(0, IDC_ARROW);
PWNDCLASS[7] = CreateSolidBrush(fon_color); // цвет фона диалога
PWNDCLASS[9] = address(#Class[0]); // имя класса окна
if (RegisterClass(CLASS)==0){messagebox("Не удалось зарегистрировать класс"); goto end;}
int Main = CreateWindow(WS_EX_TOPMOST, address(#Class[0]), "", WS_VISIBLE | WS_OVERLAPPEDWINDOW, 200, 100, 400, 300, 0, 0, 0, 0);
// создание контролов
int button0 = CreateWindow(0, "BUTTON", "Кнопка", WS_VISIBLE | WS_CHILD, 10, 10, 80, 20, Main, 0, 0, 0);
int edit0 = CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD, 10, 40, 100, 20, Main, 0, 0, 0);
loop()sleep(10);
end:;
function getmessage(WM_COMMAND)
{
char text[99];
if (message.lparam==button0) //Если нажата кнопка
{
messagebox ("Нажата Кнопка");
GetWindowText(edit0, address(#text[0]), 99); // получить текст из edit0
messagebox ("Введённый текст: "+format(#text[0]));
}
}
function getmessage(WM_CLOSE)
{
UnregisterClass(address(#Class[0]), 0);
goto global end;
}
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define WS_EX_TOPMOST 0x00000008
#define WS_OVERLAPPEDWINDOW 0xCF0000
#define IDC_ARROW 32512
#define NULL 0
external(INT, "RegisterClass", "RegisterClassA", "User32.dll");
external(INT, "UnregisterClass", "UnregisterClassA", "User32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetModuleHandle", "GetModuleHandleA", "Kernel32.dll");
external(INT, "LoadCursor", "LoadCursorA", "User32.dll");
external(INT, "LoadIcon", "LoadIconA", "User32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
int fon_color = rgb(255, 0, 255); // цвет фона диалога
char Class[99];
strcpy(#Class[0], "myclass");
int PWNDCLASS[10];//Структура WNDCLASS
int CLASS=address(#PWNDCLASS[0]);//Указатель на название класса
initialarray(#PWNDCLASS[0], 0);//Обнуляем структуру
PWNDCLASS[1] = address("WindowProc");
PWNDCLASS[5] = LoadIcon(GetModuleHandle(NULL), 128); // иконка
PWNDCLASS[6] = LoadCursor(0, IDC_ARROW);
PWNDCLASS[7] = CreateSolidBrush(fon_color); // цвет фона диалога
PWNDCLASS[9] = address(#Class[0]); // имя класса окна
if (RegisterClass(CLASS)==0){messagebox("Не удалось зарегистрировать класс"); goto end;}
int Main = CreateWindow(WS_EX_TOPMOST, address(#Class[0]), "", WS_VISIBLE | WS_OVERLAPPEDWINDOW, 200, 100, 400, 300, 0, 0, 0, 0);
// создание контролов
int button0 = CreateWindow(0, "BUTTON", "Кнопка", WS_VISIBLE | WS_CHILD, 10, 10, 80, 20, Main, 0, 0, 0);
int edit0 = CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD, 10, 40, 100, 20, Main, 0, 0, 0);
loop()sleep(10);
end:;
function getmessage(WM_COMMAND)
{
char text[99];
if (message.lparam==button0) //Если нажата кнопка
{
messagebox ("Нажата Кнопка");
GetWindowText(edit0, address(#text[0]), 99); // получить текст из edit0
messagebox ("Введённый текст: "+format(#text[0]));
}
}
function getmessage(WM_CLOSE)
{
UnregisterClass(address(#Class[0]), 0);
goto global end;
}