Главная страница
    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.008 c
1-18465
WondeRu
2003-09-24 09:22
2003.10.06
Сервисы


14-18548
ie
2003-09-16 14:36
2003.10.06
вот


3-18226
Смирнов Алексей
2003-09-16 23:37
2003.10.06
Фильтрация данных по каждому полю.


14-18640
Zilog
2003-09-17 12:34
2003.10.06
Меню Save As - enabled/disabled.


14-18611
wnew
2003-09-17 23:08
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский