Jump to content

How to detect focus lost event


ShadowElf
 Share

Recommended Posts

I want to detect a focus lost event. pls help

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 258, 155, 238, 143)
$Combo1 = GUICtrlCreateCombo("Combo1", 24, 16, 217, 25)

!!!oneventfocuslost(call loss() function)!!!

$Input1 = GUICtrlCreateInput("Input1", 24, 48, 217, 21)
GUISetState(@SW_SHOW)
Func loss()
    MsgBox(-1, "test", "test")
EndFunc
While 1
Sleep(100)
WEnd

I like IT: php, mysql, codeingiter, css, jquery and AUTOIT

Link to comment
Share on other sites

Maybe that way!?

I don't know the variable-names

Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 258, 155, 238, 143)
GUISetOnEvent(-3, "_Exit")
GUIRegisterMsg(0x0111, "_LostFocus") ;$WM_KILLFOCUS

Global $Combo1 = GUICtrlCreateCombo("Combo1", 24, 16, 217, 25)
Global $Input1 = GUICtrlCreateInput("Input1", 24, 48, 217, 21)

GUISetState(@SW_SHOW)

While 1
 Sleep(100000)
WEnd

Func _Exit()
 Exit
EndFunc

Func _LostFocus($hWnd, $Msg, $wParam, $lParam)
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
  If $nID = $Combo1 And $nNotifyCode = 10 Then MsgBox(0,  "Info", "ComboBox1 lost focus!")
  If $nID = $Input1 And $nNotifyCode = 512 Then MsgBox(0,  "Info", "Input1 lost focus!")
EndFunc

Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the Universe
trying to produce bigger and better idiots.
So far, the Universe is winning.

Link to comment
Share on other sites

I don't know why, but I tested it. I even don't know why there is a difference between Input and Combo!?

But it works.

Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 258, 300)
GUISetOnEvent(-3, "_Exit")
GUIRegisterMsg(0x0111, "_LostFocus") ;$WM_KILLFOCUS

Global $aInput[10]

For $i = 0 To 9
 $aInput[$i] = GUICtrlCreateInput("Input_"&$i , 20, 20 + $i* 22, 217, 21)
Next

GUISetState(@SW_SHOW)

While 1
 Sleep(100000)
WEnd

Func _Exit()
 Exit
EndFunc

Func _LostFocus($hWnd, $Msg, $wParam, $lParam)
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
 If $nNotifyCode = 512 Then
  For $j = 0 To 9
   If $nID = $aInput[$j] Then MsgBox(0,  "Info", "Input" & $j & " lost focus!")
  Next
 EndIf  
EndFunc

Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the Universe
trying to produce bigger and better idiots.
So far, the Universe is winning.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...