Как сделать окно приоритетным? Imgui

schtolz

Активный
Автор темы
107
58
Версия MoonLoader
.026-beta
Lua:
function imgui.OnDrawFrame()
  imgui.SetNextWindowPos(imgui.ImVec2(pox1,poy1),imgui.Cond.Always)
  imgui.Begin("Окно1",exit,imgui.WindowFlags.NoMove)
  imgui.Chechbox('Перемещение',moving)
  imgui.End

  imgui.SetNextWindowPos(imgui.ImVec2(pox,poy),imgui.Cond.Always)
  imgui.Begin("Окно2",exit,imgui.WindowFlags.NoMove)
  imgui.End
end

function()
        imgui.ShowCursor = true
        local x, y = getCursorPos()
        pox,poy = x,y
        if isKeyJustPressed(0x02) then
            settings.x = pox
            settings.y = poy
            moving.v = false
            imgui.ShowCursor = false
            json.save()
        end 
end
Через Окно1 включается функция перемещения Окно2, но оно не перемещается из-за того, что неактивно. Как сделать активным окно2
 

YarikVL

Известный
Проверенный
4,565
1,708
Lua:
function imgui.OnDrawFrame()
  imgui.SetNextWindowPos(imgui.ImVec2(pox1,poy1),imgui.Cond.Always)
  imgui.Begin("Окно1",exit,imgui.WindowFlags.NoMove)
  imgui.Chechbox('Перемещение',moving)
  imgui.End

  imgui.SetNextWindowPos(imgui.ImVec2(pox,poy),imgui.Cond.Always)
  imgui.Begin("Окно2",exit,imgui.WindowFlags.NoMove)
  imgui.End
end

function()
        imgui.ShowCursor = true
        local x, y = getCursorPos()
        pox,poy = x,y
        if isKeyJustPressed(0x02) then
            settings.x = pox
            settings.y = poy
            moving.v = false
            imgui.ShowCursor = false
            json.save()
        end
end
Через Окно1 включается функция перемещения Окно2, но оно не перемещается из-за того, что неактивно.
Там вроде по другому надо прописывать два окна:
Lua:
local window = imgui.ImBool(false)
local window2 = imgui.ImBool(false)

--wait(0)
imgui.Process = window.v or window2.v
imgui.ShowCursor = window.v or window2.v

--imgui
function imgui.OnDrawFrame()
    if window.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(500, 200), imgui.Cond.FirstUseEver)
        imgui.Begin("window", window)
        imgui.Text('Test')
        imgui.Button('Test')
        imgui.End()
    end
    if window2.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(500, 200), imgui.Cond.FirstUseEver)
        imgui.Begin("window", window2)
        imgui.Text('Test')
        imgui.Button('Test')
        imgui.End()
    end
end
Как сделать активным окно2
Думаю тебе нужен setWindowFocus()
E121A6E1-1417-4E0E-944B-887497C83D16.jpeg
 
  • Нравится
Реакции: MLycoris и Lance_Sterling

Lance_Sterling

Потрачен
798
256
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Там вроде по другому надо прописывать два окна:
Lua:
local window = imgui.ImBool(false)
local window2 = imgui.ImBool(false)

--wait(0)
imgui.Process = window.v or window2.v
imgui.ShowCursor = window.v or window2.v

--imgui
function imgui.OnDrawFrame()
    if window.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(500, 200), imgui.Cond.FirstUseEver)
        imgui.Begin("window", window)
        imgui.Text('Test')
        imgui.Button('Test')
        imgui.End()
    end
    if window2.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(500, 200), imgui.Cond.FirstUseEver)
        imgui.Begin("window", window2)
        imgui.Text('Test')
        imgui.Button('Test')
        imgui.End()
    end
end

Думаю тебе нужен setWindowFocus()
Посмотреть вложение 196565
Где ты был раньше когда я нихуя не знал?
 
  • Нравится
Реакции: YarikVL

schtolz

Активный
Автор темы
107
58
Там вроде по другому надо прописывать два окна:
Lua:
local window = imgui.ImBool(false)
local window2 = imgui.ImBool(false)

--wait(0)
imgui.Process = window.v or window2.v
imgui.ShowCursor = window.v or window2.v

--imgui
function imgui.OnDrawFrame()
    if window.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(500, 200), imgui.Cond.FirstUseEver)
        imgui.Begin("window", window)
        imgui.Text('Test')
        imgui.Button('Test')
        imgui.End()
    end
    if window2.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(500, 200), imgui.Cond.FirstUseEver)
        imgui.Begin("window", window2)
        imgui.Text('Test')
        imgui.Button('Test')
        imgui.End()
    end
end

Думаю тебе нужен setWindowFocus()
Посмотреть вложение 196565
Это работает. Моя задача, чтобы Окно2 прилипло к курсору, но почему-то это не происходит даже если я фокус на Окно2 передаю. Не подскажешь как это реализовать? В случае, если существует одно окно, все работает и оно прилипает к курсору