RE: Re[2]: Bring window to front

new topic     » topic index » view thread      » older message » newer message

> -----Original Message-----
> From: Thomas Parslow (PatRat) [mailto:patrat at rat-software.com]

> That's exactly what I want to do, but it doesn't seem to work....

Looks like win32.hlp is a little outdated.  From MSDN:

Remarks

...an application cannot force a window to the foreground while the user is
working with another window. Instead, SetForegroundWindow will activate the
window (see SetActiveWindow) and call the FlashWindowEx function to notify
the user. However, on Windows 98, if a nonforeground thread calls
SetForegroundWindow and passes the handle of a window that was not created
by the calling thread, the window is not flashed on the taskbar. To have
SetForegroundWindow behave the same as it did on Windows 95 and Windows NT
4.0, change the foreground lock timeout value when the application is
installed. This can be done from the setup or installation application with
the following function call: 

   SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0,
SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE);
This method allows SetForegroundWindow on Windows 98 and Windows 2000 to
behave the same as Windows 95 and Windows NT 4.0, respectively, for all
applications. The setup application should warn the user that this is being
done so that the user isn't surprised by the changed behavior. On Windows
2000, the SystemParametersInfo call fails unless the calling thread can
change the foreground window, so this must be called from a setup or patch
application. For more information, see Foreground and Background Windows. 

A process that can set the foreground window can enable another process to
set the foreground window by calling the AllowSetForegroundWindow function.
The process specified by dwProcessId loses the ability to set the foreground
window the next time the user generates input, unless the input is directed
at that process, or the next time a process calls AllowSetForegroundWindow,
unless that process is specified. 

The foreground process can disable calls to SetForegroundWindow by calling
the LockSetForegroundWindow function.

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu