Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-18373
tim5
2003-09-22 21:10
2003.10.06
Замена обоев на рабочем столе.


6-18530
zoner2
2003-08-08 00:37
2003.10.06
THREAD SERVER


14-18596
Opera
2003-09-18 00:12
2003.10.06
Размеры


1-18312
Abikos
2003-09-23 20:09
2003.10.06
функция обратная StrToHex


14-18636
Soft
2003-09-17 01:55
2003.10.06
Программа выборочной рассылки электронной почты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский