Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DestroyWindow [D5, Win2k]


Bukerman ©   (2002-09-27 20:16:00) 

Привет всем!
Подскажите кто-нибудь тупому, уже задолбался. Как закрыть (уничтожить) какое-либо окно программным путем.
Пробовал:
DestroyWindow(917804); - Не закрывает вообще

SendMessage(917804, WM_DESTROY, 0, 0);
SendMessage(917804, WM_NCDESTROY, 0, 0);
- то закрывает, то не закрывает, причем это относится к обычным окнам (не консольным), а на консольные (мне нужно закрывать именно консольные окна) вообще никак не влияет. Помогите кто-нибудь, думаю должен быть какой-то простой механизм. Причем можно именно варварским способом, так даже лучше.

Заранее спасибо.


han_malign   (2002-09-30 16:59:00) [1]

EnumWindows(...)/FindWindow(...)
...
SendMessage(...)/TerminateProcess(...)


Толик   (2002-09-30 16:44:00) [2]

to Bukerman © (30.09.02 15:46)
Ну так кто же Handle окна константой задаёт??? Ясен пень, что SendMessage(917804, WM_DESTROY, 0, 0) то работает, то нет!!! Значения в Handle присваивает Винда, а уж запишет она туда 917804 или что-то другое - это её дело. И обижатся на неё за это не следует. Нужно использовать любую ф-ю, которая возвращает Handle окна и использовать это значение в SendMessage. Если окно создаётся через CreateWindow, то нужно запомнить то, что вернёт эта ф-я. Но в любом случае, это значение в разный момент времени м.б. РАЗНЫМ.


Bukerman   (2002-09-30 15:46:00) [3]

да я ж так и делаю, 917804 - это хэндл окна в тот момент
Запускаю SendMessage(917804, WM_DESTROY, 0, 0); - 0 эмоций, причем Виндовые окна закрывает (не все), а консольные на это вообще не реагируют, есть какие-нибудб мысли еще?


Ich Hasse   (2002-09-28 16:49:00) [4]

Надо найти wHandle: THandle окна и послать ему сообщение wm_destroy


SendMessage(wHandle,wm_destroy,0,0);


Almaz   (2002-09-28 00:45:00) [5]

А откуда вы число 917804 взяли ? :)

Удачи.


Suntechnic   (2002-09-27 20:54:00) [6]

WM_CLOSE


Наверх

Титульная страница Поиск, карта сайта Написать письмо