Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.06;
Скачать: CL | DM;

Вниз

Является ли окно главным   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2003.10.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
7-18646
mox
2003-07-23 19:27
2003.10.06
Последние буквы названия окна...


6-18503
MDFE
2003-08-09 15:18
2003.10.06
Пытаюсь сделать счетчик CGI на Делфи


1-18454
Prima
2003-09-24 17:51
2003.10.06
Помогите с DLL


14-18536
Жук
2003-09-17 08:47
2003.10.06
Лига чемпионов


6-18505
Lahtak
2003-08-11 12:22
2003.10.06
загрузка с сервера на сервер