EnumChildWindows

29/10/2011 - 02:38 von Heinz-Mario Frühbeis | Report spam
Hallo!

Gegeben:
1 Parent-Fenster
3 Kind-Fenster (alle haben die selbe Klasse)

2 der 3 Kind-Fenster sind direkt auf dem Parent-Fenster
1 Kind-Fenster hat den Container Kind-Fenster1

Aufruf:
rVal = EnumChildWindows(mHwnd, AddressOf modFunktionen.EnumChildProc, 0)

CallBack:
Public Function EnumChildProc(ByVal lHwnd As Long, ByVal lParam As Long) As
Long
Debug.Print lHwnd
End Function

Result:
Ich bekomme immer nur eine hWnd.

Müßte ich nicht eigentlich alle drei Kind-Fenster aufgelistet bekommen?

Mit Gruß
Heinz-Mario Frühbeis
 

Lesen sie die antworten

#1 Wolfgang Enzinger
01/11/2011 - 01:52 | Warnen spam
Heinz-Mario Frühbeis wrote:

CallBack:
Public Function EnumChildProc(ByVal lHwnd As Long, ByVal lParam As Long) As
Long
Debug.Print lHwnd
End Function

Result:
Ich bekomme immer nur eine hWnd.

Müßte ich nicht eigentlich alle drei Kind-Fenster aufgelistet bekommen?



Nein, weil du die Enumeration explizit (oder auch implizit, je nach Sichtweise
...) nach dem ersten Fenster abbrichst.

Aus MSDN zu EnumChildProc:

"Return Values

To continue enumeration, the callback function must return TRUE; to stop
enumeration, it must return FALSE."

Wenn du das Ergebnis einer Long-Funktion nicht angibst, wird es implizit auf 0
(False) gesetzt. TRUE wàre hier 1.

Viele Grüsse,
Wolfgang
http://www.enzinger.net

Ähnliche fragen