CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define WS_VSCROLL 2097152
#define ES_MULTILINE 0x0004
#define ES_NOHIDESEL 0x100
#define ES_READONLY 0x0800
#define EM_SETSEL 177
#define EM_SCROLLCARET 0x00B7
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
int edit0, button0;
int x, y;
createdialog(0);
showdialog(0, "Нажать Q", 300, 100, 250, 270, 1, 1);
loop()
{
while(getkeystate(81)==0)sleep(10); // ждать пока не будет нажата кнопка Q
while(getkeystate(81))sleep(10); // ждать пока нажата кнопка Q
getmouse(x, y); // получаем координаты курсора
settext(edit0, gettext(edit0)+format(x)+" "+format(y)+"^r^n"); // добавить текст в edit
}
function getmessage(0, WM_CREATE)
{
edit0=CreateWindow(0, "EDIT", "", ES_READONLY | ES_NOHIDESEL | WS_VISIBLE | WS_CHILD | WS_BORDER | WS_VSCROLL | ES_MULTILINE,
10, 10, 120, 200, gethwnd(0), 0, 0, 0); // создать edit
button0=CreateWindow(0, "BUTTON", "Clear", WS_VISIBLE | WS_CHILD, 140, 10, 70, 20, gethwnd(0), 0, 0, 0); // создать кнопку
}
function getmessage(0, WM_COMMAND)
{
if(message.lparam==button0) // если нажата кнопка
{
settext(edit0, ""); // удалить текст из edit
return;
}
}
function gettext(int handle) // узнать текст окна
{
char text_c[99999];
GetWindowText(handle, address(#text_c[0]), sizearray(text_c));
return format(#text_c[0]);
}
function settext(int handle, string text) // установить текст окна
{
SetWindowText(handle, text);
sendmessage(EM_SETSEL, size(text), -1, formatiw(handle));
sendmessage(EM_SCROLLCARET, 0, 0, formatiw(handle));
}