Форум: "WinAPI";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
ВнизЯвляется ли окно главным Найти похожие ветки
← →
Yurique (2003-07-31 14:41) [0]Хаюшки мастерам.
Не подскажет ли как определить, является ли окно (есть хэндл) главным ? И как по имеющемуся хэндлу приложения определить его главное окно ?
Заранее THNX.
← →
Digitman (2003-07-31 14:50) [1]
> как определить
в общем случае - никак
← →
Bes (2003-07-31 15:24) [2]зайди в поиск на сайте и напиши winapi потом ищи статью "функции api для работы с посторонними окнами", статья поможет...
← →
Anatoly Podgoretsky (2003-07-31 15:29) [3]В общем это ты считаешь какое окно главное, в отличии от Дельфи
← →
Ученик (2003-07-31 22:16) [4]Вариант из { Project JEDI Code Library JCL) }
function IsMainAppWindow(Wnd: HWND): Boolean;
var
ParentWnd: HWND;
ExStyle: DWORD;
begin
if IsWindowVisible(Wnd) then
begin
ParentWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
ExStyle := GetWindowLong(Wnd, GWL_EXSTYLE);
Result := ((ParentWnd = 0) or (ParentWnd = GetDesktopWindow)) and
( (ExStyle and WS_EX_TOOLWINDOW = 0) Вариант из { Project JEDI Code Library JCL) }
function IsMainAppWindow(Wnd: HWND): Boolean;
var
ParentWnd: HWND;
ExStyle: DWORD;
begin
if IsWindowVisible(Wnd) then
begin
ParentWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
ExStyle := GetWindowLong(Wnd, GWL_EXSTYLE);
Result := ((ParentWnd = 0) or (ParentWnd = GetDesktopWindow)) and
((ExStyle and WS_EX_TOOLWINDOW = 0) or (ExStyle and WS_EX_APPWINDOW <> 0));
end
else
Result := False;
end;
← →
Anatoly Podgoretsky (2003-07-31 22:21) [5]Это не главное, а верхнее родительское, немного не то.
← →
Ученик (2003-07-31 23:27) [6]>Anatoly Podgoretsky © (31.07.03 22:21)
Если это не то, то видимо у Вас есть то, Ваш вариант :-)
← →
Anatoly Podgoretsky (2003-07-31 23:34) [7]Есть
Digitman © (31.07.03 14:50)
Anatoly Podgoretsky © (31.07.03 15:29)
← →
Ученик (2003-07-31 23:37) [8]>Anatoly Podgoretsky © (31.07.03 23:34)
Понятно, как обычно :-)
← →
Digitman (2003-08-01 11:59) [9]Вообще говоря, рискну предположить, что среди верхнеуровневых окон, созданных осн.код.потоком процесса, главным может являться окно с наименьшим кардинальным значением хэндла. Т.е. если енумеровать (тем или иным докум.способом) верхнеуровневые окна осн.код.потока процесса, то при определенных условиях (опять же - частный, а не общий случай) окно с наименьшим значением хэндла можно, вероятно, считать главным.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c