Закрыть окно при клике на экран вне определённого окна.

gbcdev96

Путник
VIP
Сообщения
58
Розыгрыши
0
Репутация
0
Реакции
1
Баллы
31
Привет, ребята, я пытаюсь написать код, чтобы закрыть окно при клике за его пределами. Не знаю, насколько это сложно, но я посмотрел события, и мне кажется, что эти подходят:

event OnLButtonDown( WindowHandle a_WindowHandle, int X, int Y );
event OnLButtonUp( WindowHandle a_WindowHandle, int X, int Y );
event OnLButtonDblClick( int X, int Y );

Так как я новичок в UC и не имею понятия, как отлаживать код, я использовал чат для вывода координат клика:

function OnLButtonDblClick(int X, int Y)
{
local Color Color;
local Rect rectWnd;

Color.R = byte(255);
Color.G = byte(255);
Color.B = byte(255);
Color.A = byte(255);

NormalChat = ChatWindowHandle(GetHandle("ChatWnd.NormalChat"));
NormalChat.AddString("x" $string(x), Color);
NormalChat.AddString("y" $string(y), Color);

xxGetWindowHandle("AutoPotionsWnd.configPotions").HideWindow();
}

function OnLButtonDown(WindowHandle a_WindowHandle, int X, int Y)
{
local UserInfo UserInfo;
local Color Color;
local Rect rectWnd;

Color.R = byte(255);
Color.G = byte(255);
Color.B = byte(255);
Color.A = byte(255);

NormalChat = ChatWindowHandle(GetHandle("ChatWnd.NormalChat"));
NormalChat.AddString("handle_name" $a_WindowHandle.GetWindowName(), Color);
NormalChat.AddString("x" $string(x), Color);
NormalChat.AddString("y" $string(y), Color);
}

Но эти события работают только для кликов внутри окна и его дочерних элементов. А мне нужно отслеживать события вне этого окна, в любой части интерфейса. Это возможно?


 
Почему не использовать постоянное окно вроде настроек или радара для отслеживания других окон(Через таймер или события) и использовать функцию окна IsFocused ?
 

Почему не использовать постоянное окно вроде настроек или радара для отслеживания других окон(Через таймер или события) и использовать функцию окна IsFocused ?
В интерлюдии я смог получить фокус только при нажатии на окно. Но это не единственная проблема: на окне есть множество элементов, которые также имеют свой фокус.
 
В интерлюдии я смог получить фокус только при нажатии на окно. Но это не единственная проблема: на окне есть множество элементов, которые также имеют свой фокус.
Точно, проблема в том, что теряешь фокус при перетаскивании ползунка
 
Тогда по всей видимости реализовывать нативно .
 
Назад
Сверху Снизу