Как я могу найти окно с определенным стилем окна? (WS_CHILDWINDOW) - PullRequest
0 голосов
/ 04 июля 2010

У меня есть определенное окно со стилем окна WS_CHILDWINDOW.Это дочернее окно окна, ручка которого у меня уже есть.Это окно является вторым последним.Как мне это получить?

Кстати, это C ++.

Ответы [ 2 ]

3 голосов
/ 04 июля 2010

В качестве альтернативы EnumChildWindows, опубликованной выше, вы можете использовать это:

HWND first_child = GetWindow(parent_hwnd, GW_CHILD);
HWND last_child = GetWindow(first_child, GW_HWNDLAST);
HWND prev_to_last_child = GetWindow(last_child, GW_HWNDPREV);

Недостатком этого подхода является возможность гонки, если новое дочернее окно добавляется в конце Z- порядок между шагами 2 и 3. Хотя на практике это не должно быть проблемой.:)

1 голос
/ 04 июля 2010

Ну, есть специальная функция Windows API для перечисления дочерних окон: EnumChildWindows (). Передайте дескриптор родительского окна и обратный вызов. Должно быть что-то особенное в дочернем окне, которое вы хотите найти. Обратного отсчета в обратном вызове может быть достаточно. «Предыдущий к последнему» тоже очень возможен, просто нужны две переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...