Удалить объект HWND

У меня есть ситуация, когда при получении сообщения я должен удалить окно только с hWnd. Я думаю, что это должно быть возможно, так как CreateWindowEx создает объект, возвращая HWND, я должен быть в состоянии удалить один.

Примечание: hWnd лежит на каком-то другом процессе.

5

Решение

Правильный способ отправить WM_CLOSE сообщение в соответствующее окно или просто вызов DestroyWindow который отправит WM_DESTROY сообщение в окно.

Тема не могу используйте DestroyWindow, чтобы уничтожить окно, созданное другим потоком.

Разница между WM_CLOSE и WM_DESTROY:

После отправки WM_CLOSE целевое приложение может запросить подтверждение у пользователя, прежде чем разрушить окно, обработав сообщение WM_CLOSE и вызвав функцию DestroyWindow, только если пользователь подтвердит выбор.

Другими словами, закрытие окна с использованием WM_CLOSE может быть отклонено, но оно считается «более безопасным», чем WM_DESTROY, потому что приложение может сохранить запрос подтверждения и сохранить изменения.
Однако, если вам нужно принудительно закрыть, используйте WM_DESTROY.

Структурные указатели HWND управляются системой, даже не пытайтесь их удалять!

Не имеет значения, какому процессу принадлежит окно при использовании сообщения WM_CLOSE.

6

Другие решения

Отправить окно WM_CLOSE сообщение с SendMessage,

3

По вопросам рекламы [email protected]