Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка окна на валидность / 13 сообщений из 13, страница 1 из 1
04.01.2012, 16:17
    #37602134
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
имею хендл окна.
нужно проверить действителен ли этот хендл
т.е существует ли это окно на данный момент?
...
Рейтинг: 0 / 0
04.01.2012, 16:50
    #37602171
хендл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
есть специальная апи функция
IsWindow
...
Рейтинг: 0 / 0
04.01.2012, 17:03
    #37602189
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
чтото не получается((

после закрытия формы чей хендл у меня имеется всё равно IsWindow=1 ( как быть?
...
Рейтинг: 0 / 0
04.01.2012, 17:08
    #37602191
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
пардон добавлю что компонент от моей программы встраивается в стороннее окно. и когда окно закроют нужно отловить этот момент и выполнить определённую процедуру
...
Рейтинг: 0 / 0
04.01.2012, 17:25
    #37602215
хендл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
IsWindow=1 значит окно просто скрыто а не уничтожено
более того если делать fmrInstance.Hwnd тк оно всегда будет существовать тк этот вызов создает окно если его еще не было

авторкомпонент от моей программы встраивается в стороннее окно


это можно сделать кучей способов

но отследить закрытия окна можно с помощью обработки WM_DESTROY это самый надежный способ
а может окно которое закрывается может послать событие тогда его можно обработать
...
Рейтинг: 0 / 0
04.01.2012, 17:31
    #37602225
хендл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
еще можно просто FindWindow это гораздо проще
...
Рейтинг: 0 / 0
04.01.2012, 17:33
    #37602226
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
хендл,

пробовал) но там несколько таких окон с таким же классом и текстом.(
...
Рейтинг: 0 / 0
04.01.2012, 17:41
    #37602229
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
а можно по подробнее с WM_DESTROY ?)
...
Рейтинг: 0 / 0
04.01.2012, 17:55
    #37602255
хендл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
авторно там несколько таких окон с таким же классом и текстом


ну так они чем-то все равно отличаются
например принадлежат одной и той же thread
соответственно находим thread нашего окна
потом находим родительское окно по заголоваку или классу и у которого тот же thread

авторподробнее с WM_DESTROY


это низкоуровневый подход
вариант 1 надо переопределить оконную процедуру родительского окна отловить в ней WM_DESTROY и послать в этом обработчике сообщение дочернему окну
вариант 2 использовать SetWindowsHookEx CBT_HOOK тогда событие удаления окна придет в процедуру обработки
...
Рейтинг: 0 / 0
04.01.2012, 18:15
    #37602282
хендл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
кстати если наше дочернее окно закрывается когда закрывается родительское то в дочернее окно тоже придет WM_DESTROY те все операции по отслеживанию закрытия можно делать с нашим окном а не с родительским а родительское вообще не трогать
...
Рейтинг: 0 / 0
04.01.2012, 18:42
    #37602314
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
хендл,

как организовать первый способ?
я просто в таком деле не соображаю вообще..(
я раньше такое делал только намного проще но забыл уже...
...
Рейтинг: 0 / 0
04.01.2012, 18:52
    #37602327
хендл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
есть хендл окна
для него есть специальный системный вызов который позволяет задать свою собственную процедуру окна
естественно собственную процедуру окна надо написать
после установки собственной процедуры окна обрабатываем сообщения которые нас интересуют остальные сообщения передаем оригинальной процедуре окна

поищите
"переопеределение процедуры окна"

у меня нет готового кода
...
Рейтинг: 0 / 0
04.01.2012, 19:13
    #37602358
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка окна на валидность
хорошо спасибо сейчас чтонить может придумаю
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка окна на валидность / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]