Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2015, 16:31   #1
quqeiqa2
Пользователь
 
Регистрация: 16.10.2014
Сообщений: 27
По умолчанию Как определить, что элемент - окно

Как определить, что элемент с данным hwnd есть окно, а не что-то другое?
quqeiqa2 вне форума Ответить с цитированием
Старый 07.06.2015, 17:35   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
элемент с данным hwnd есть окно, а не что-то другое
Они все окна. С GetWindowLong поиграться
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.06.2015, 17:45   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
элемент с данным hwnd есть окно, а не что-то другое?
Код:
if IsWindow(Хендл) then Это хендл окошка а не файла или чего-то другого.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2015, 20:46   #4
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

Цитата:
элемент с данным hwnd
Тип данных HWND - это по определению: дискриптор/описатель окна.
Грубо говоря HWND и есть окно.
А функция IsWindow() помимо уже сказанного делает полную проверку на валидность, то есть и на существование окна.

Применительно к VCL:

Код:
Function IsWinControl(Control: TControl): Boolean;
Begin
Result:=False;
If Control Is TWinControl Then
      Result:=True;
End;

Procedure TForm1.Button1Click(Sender: TObject);
Var i: Integer;
Begin
For i:=0 To ControlCount-1 Do
      If IsWinControl(Controls[i]) Then
            ShowMessage(Controls[i].Name+' ['+Controls[i].ClassName+'] is Window!');
End;
ResourceSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить что элемент есть окно? quqeiqa2 Windows 1 12.05.2015 09:06
Как определить элемент массива, у которого max модуль целой части максим27 Помощь студентам 4 05.02.2013 12:23
как определить, обновилось ли чужое окно The SCS Общие вопросы Delphi 1 06.07.2012 18:46
как определить наименьший нечетный элемент в двух мерном массиве ВДПУ Помощь студентам 13 27.05.2012 13:35
Массив в Си. как определить и удалить строчку в которой находится макс элемент Софья9 Помощь студентам 15 11.06.2009 18:46