Что нового

Окна, Диалоги Активация окна по клику в любом месте окна

vivernet

Знающий
Сообщения
32
Репутация
5
Пытаюсь найти как активировать окно, по клику в пустые области окна. Но но никак не выходит найти функцию такую.
Суть заключается в том, что из за использования функции:
Код:
GUIRegisterMsg($WM_NCHITTEST, "_WM_NCHITTEST")
Func _WM_NCHITTEST($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam, $lParam
    Return 0 ; ..to not continue
EndFunc


Когда окна является не активный, активным его можно сделать, только если кликнуть по какому то элементу, при клике по пустой области, активным не становиться.

PS: использую эту функцию выше, из за того что у меня используется много дочерних форм, из за необходимости размещения на форме, нескольких элементов Tab
Сообщение автоматически объединено:

то есть из такого положения, единственный способ сделать окно справа активным, нажать на какой то элемент или заголовок(((
 

Вложения

  • Снимок экрана 2023-05-10 131008.png
    Снимок экрана 2023-05-10 131008.png
    67.9 КБ · Просмотры: 7
Последнее редактирование:

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Использовать wm функцию для курсора. Она отслеживает над каким окном курсор и отслеживает клики. Соответственно при клике активировать окно функцией winactivate
 
Автор
vivernet

vivernet

Знающий
Сообщения
32
Репутация
5
Использовать wm функцию для курсора. Она отслеживает над каким окном курсор и отслеживает клики. Соответственно при клике активировать окно функцией winactivate
видел один ваш вариант в соседнем топе, его пробовал, работает, но появляется один недостаток: при перетаскивании окна, оно как то подвисает
вот так пробовал:
Код:
Func _WM_SETCURSOR($hWnd, $Msg, $wParam, $lParam)
    If _WinAPI_HiWord($lParam) = 513 Then WinActivate($hGUI)
    Return $GUI_RUNDEFMSG
EndFunc
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Слежение за курсором нужно для активации окна. Значит, когда произошла активация, то она повторно не нужна. Возможно у вас происходит постоянная активация и из за этого подвисание.
Сделайте пример кода
 
Автор
vivernet

vivernet

Знающий
Сообщения
32
Репутация
5
Забил на этот способ в итоге, нашел как решить проблему глобально. Оказалось 3 года не верно понимал, как GUI создавать с элементами Tab. Эх
 
Верх