FindWindow...next?

  • Thread starter Thread starter pipo
  • Start date Start date
P

pipo

Hi,

When I call FindWindow("SciCalc", null) I always get the same handle back.
How can I enumerate through the (open) calculator forms?
I dont want to use EnumWindows and check for the handles (bit overdone I
think)

More looking for a FindWindowNext or so ;)

Does anyone know a function for this?

tia
 
pipo said:
When I call FindWindow("SciCalc", null) I always get the same handle back.
How can I enumerate through the (open) calculator forms?
I dont want to use EnumWindows and check for the handles (bit overdone I
think)

More looking for a FindWindowNext or so ;)
There are two functions that approximate that: GetWindow() with GW_HWNDNEXT
and FindWindowEx() with the child window handle set to a previously found
window.

However, neither should be used for this, you really do want to use
EnumWindows() (in combination with GetClassName()). The MSDN mentions why
this is so: if anything changes in window ordering or existence while you're
enumerating windows "manually", you're in trouble. EnumWindows() doesn't
have these problems -- this is exactly why we have EnumWindows().

The MSDN contains a useful sample for EnumWindows() under callbacks:
http://msdn2.microsoft.com/en-us/library/843s5s5x.aspx
 
Great help Jeroen, thank you


Jeroen Mostert said:
There are two functions that approximate that: GetWindow() with
GW_HWNDNEXT and FindWindowEx() with the child window handle set to a
previously found window.

However, neither should be used for this, you really do want to use
EnumWindows() (in combination with GetClassName()). The MSDN mentions why
this is so: if anything changes in window ordering or existence while
you're enumerating windows "manually", you're in trouble. EnumWindows()
doesn't have these problems -- this is exactly why we have EnumWindows().

The MSDN contains a useful sample for EnumWindows() under callbacks:
http://msdn2.microsoft.com/en-us/library/843s5s5x.aspx
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top