| Предыдущий | Следующий |
| ERROR_CLASS_DOES_NOT_EXIST | ERROR_INVALID_INDEX |
ERROR_CLASS_HAS_WINDOWS
Существующие окна всё ещё используют класс
UnregisterClass требует сначала уничтожить все окна, созданные с указанным классом. Класс окна является шаблоном, общим для его экземпляров; удалять шаблон при наличии экземпляров запрещено.
Скрытые окна, окна только для сообщений, немодальные диалоги и окна вторичных потоков интерфейса — частые причины, по которым приложение считает очистку завершённой, хотя у класса ещё есть экземпляры. Поэтому уничтожения только видимого главного окна может быть недостаточно.
Что проверить
- Перечисляйте или иным способом отслеживайте каждый экземпляр окна, созданный из класса.
- Завершите вторичные GUI-потоки и вспомогательные окна только для сообщений до отмены регистрации класса.
- Явно уничтожьте немодальные окна и дождитесь завершения владеющих ими потоков.
- Вызывайте
UnregisterClassтолько после того, как число экземпляров станет равным нулю.
Это отличается от ERROR_CLASS_ALREADY_EXISTS: регистрация допустима, но порядок завершения не позволяет её удалить.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.