Описание функции


SetForegroundWindow

Делает окно активным

SetForegroundWindow(hWnd)

Параметры

hWnd Дескриптор окна

Пример

; Fred
; https://www.purebasic.fr/english/viewtopic.php?t=7424
Procedure SetForegroundWindow(hWnd)
    Protected foregroundThreadID, ourThreadID
    If GetWindowLong_(hWnd, #GWL_STYLE) & #WS_MINIMIZE
        ; ShowWindow_(hWnd, #SW_MAXIMIZE)
        ShowWindow_(hWnd, #SW_SHOWNOACTIVATE)
        UpdateWindow_(hWnd)
    EndIf
    foregroundThreadID = GetWindowThreadProcessId_(GetForegroundWindow_(), 0)
    ourThreadID = GetCurrentThreadId_()

    If (foregroundThreadID <> ourThreadID)
        AttachThreadInput_(foregroundThreadID, ourThreadID, #True);
    EndIf

    SetForegroundWindow_(hWnd)

    If (foregroundThreadID <> ourThreadID)
        AttachThreadInput_(foregroundThreadID, ourThreadID, #False)
    EndIf

    InvalidateRect_(hWnd, #Null, #True)
EndProcedure