Сообщений 3    Оценка 18        Оценить  
Система Orphus

Почему диалог не создаётся?

Автор: Александр Шаргин
Опубликовано: 27.08.2001
Исправлено: 13.03.2005
Версия текста: 1.0

Допустим, вы вставили в программу вызов DialogBox (или похожей функции) и обнаружили, что диалог почему-то не создаётся. Что делать в такой ситуации? На этот вопрос я и постараюсь ответить.

На самом деле, причин, из-за которых диалог создать не удаётся, может быть очень и очень много, вплоть до нехватки памяти. Я перечислил лишь некоторые. Теперь несколько слов о том, что может помочь вам отыскать ошибку.

В первую очередь следует обратить внимание на значение, возвращаемое функцией DialogBox, а также расширенный код ошибки, который можно получить от функции GetLastError. Тем не менее, моя практика показывает, что эти коды редко бывают осмысленными. Более реальную помощь может оказать стиль DS_NOFAILCREATE, который можно назначить диалогу (в редакторе ресурсов Visual C++ ему соответствует "галочка" No fail create). Если этот стиль задан, диалог создаётся, даже если какие-то дочерние контролы создать не удалось. Посмотрев, чего "не хватает" в диалоге с таким стилем, можно угадать, в чём проблема. Если же диалог не появляется даже с этим стилем, это значит, что причина не связана с дочерними контролами, а имеет отношение к самому диалогу (не так заданы параметры и т. д.).


Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
    Сообщений 3    Оценка 18        Оценить