|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
имею хендл окна. нужно проверить действителен ли этот хендл т.е существует ли это окно на данный момент? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 16:17 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
есть специальная апи функция IsWindow ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 16:50 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
чтото не получается(( после закрытия формы чей хендл у меня имеется всё равно IsWindow=1 ( как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 17:03 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
пардон добавлю что компонент от моей программы встраивается в стороннее окно. и когда окно закроют нужно отловить этот момент и выполнить определённую процедуру ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 17:08 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
IsWindow=1 значит окно просто скрыто а не уничтожено более того если делать fmrInstance.Hwnd тк оно всегда будет существовать тк этот вызов создает окно если его еще не было авторкомпонент от моей программы встраивается в стороннее окно это можно сделать кучей способов но отследить закрытия окна можно с помощью обработки WM_DESTROY это самый надежный способ а может окно которое закрывается может послать событие тогда его можно обработать ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 17:25 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
еще можно просто FindWindow это гораздо проще ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 17:31 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
хендл, пробовал) но там несколько таких окон с таким же классом и текстом.( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 17:33 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
а можно по подробнее с WM_DESTROY ?) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 17:41 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
авторно там несколько таких окон с таким же классом и текстом ну так они чем-то все равно отличаются например принадлежат одной и той же thread соответственно находим thread нашего окна потом находим родительское окно по заголоваку или классу и у которого тот же thread авторподробнее с WM_DESTROY это низкоуровневый подход вариант 1 надо переопределить оконную процедуру родительского окна отловить в ней WM_DESTROY и послать в этом обработчике сообщение дочернему окну вариант 2 использовать SetWindowsHookEx CBT_HOOK тогда событие удаления окна придет в процедуру обработки ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 17:55 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
кстати если наше дочернее окно закрывается когда закрывается родительское то в дочернее окно тоже придет WM_DESTROY те все операции по отслеживанию закрытия можно делать с нашим окном а не с родительским а родительское вообще не трогать ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 18:15 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
хендл, как организовать первый способ? я просто в таком деле не соображаю вообще..( я раньше такое делал только намного проще но забыл уже... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 18:42 |
|
проверка окна на валидность
|
|||
---|---|---|---|
#18+
есть хендл окна для него есть специальный системный вызов который позволяет задать свою собственную процедуру окна естественно собственную процедуру окна надо написать после установки собственной процедуры окна обрабатываем сообщения которые нас интересуют остальные сообщения передаем оригинальной процедуре окна поищите "переопеределение процедуры окна" у меня нет готового кода ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 18:52 |
|
|
start [/forum/topic.php?fid=60&fpage=88&tid=2158172]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 135ms |
0 / 0 |