Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
1-18441
3APA3A
2003-09-24 23:53
2003.10.06
Проблема с ValueListEditor ом


1-18351
MakNik
2003-09-23 11:24
2003.10.06
Динамически заменять компоненты


3-18271
Фагот
2003-09-15 10:26
2003.10.06
Индексы


1-18404
S@b@k@.
2003-09-25 16:59
2003.10.06
Помогите с иконками в трее


1-18369
Mihey
2003-09-21 22:33
2003.10.06
Нужен компонент...




   Наверх