Re: what window had focus last
- Posted by Derek Parnell <ddparnell at bigpond.com> Sep 04, 2001
- 556 views
----- Original Message ----- From: "Judith" <camping at txcyber.com> To: "EUforum" <EUforum at topica.com> Subject: what window had focus last > If a program has several windows with the secondary windows having the > main window as parent and any number of them might be open at any time, > is there an easy way to know which one had focus before the ap is > minimized? I realise I could be setting values in a variable but I was > wondering if there is something in the API that might help me. Hi Judith, see if this helps you ... -------------------------- include win32lib_full.ew without warning constant xGetFocus = registerw32Function(user32, "GetFocus", {},C_ULONG), xGetForegroundWindow = registerw32Function(user32, "GetForegroundWindow", {}, C_ULONG) constant winm = create(Window, "Main Window", 0, 0, 0, 400, 400, 0), SB = create(StatusBar, "", winm, 0, 0, 0, 0, 0), winc = create(Window, "Child Window", winm, 300, 300, 300, 300, 0), btnc = create(Button, "child button", winc, 5, 5, 150, 25,0), btnm = create(Button, "main button", winm, 5, 5, 150, 25, 0) openWindow(winc, 0) procedure showfocus(integer self, integer event, sequence parms) integer lFocus, lFore sequence lForeText, lFocusText lFocus = getId(w32Func(xGetFocus,{})) lFore = getId(w32Func(xGetForegroundWindow,{})) lForeText = getText(lFore) lFocusText = getText(lFocus) setText(SB, sprintf("Focus = '%s', Foreground = '%s'", {lFocusText, lForeText })) end procedure setHandler({btnc,btnm}, w32HClick, routine_id("showfocus")) WinMain(winm, 0) ----------------- ---------- Derek