Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Где лучше создавать обьекты?


Автор: Coocky 4.8.2004, 22:33
Часто сталкиваюсь с проблемой,когда "не работают" обьекты созданые в OnInitDialog();Например строка состояния не показавается или картинка на кнопке не появляется,пока LoadBitmap() не сделаешь в конструкторе,а SetBitmap() можно в OnInitDialog(),ну и др.
Может выведем какое-то правило,где и что создается?Или все в конструктор пихать,а OnInitDialog оставим для переменных CString ,CRect ,.... smile.gif

Автор: Олег М 5.8.2004, 05:22
Уточни вопрос. Что значит создавать? Динамически? Абсолютно по барабану где создаются объекты, если ты всё правильно делаешь.
У тебя похоже проблема не в создании объектов, а в чём то другом.
СString и CRect, кстати не переменные, а тоже такие же объекты.

Автор: Temnozor 5.8.2004, 11:31
Цитата
Уточни вопрос. Что значит создавать? Динамически? Абсолютно по барабану где создаются объекты, если ты всё правильно делаешь.
У тебя похоже проблема не в создании объектов, а в чём то другом.
СString и CRect, кстати не переменные, а тоже такие же объекты.

Правда твоя.
Если объекты принадлежат классу окна, то создаются они всегда в конструкторе вместе с окном.
Конечно, если они - указатели, то создавать их можно где угодно.
В OnInitDialog удобно объекты инициализировать (присваивать значение).
Могу выдать предположение, что создаваемые тобой (Coocky) объекты являются локальными в функции OnInitDialog и поэтому сразу уничтожаются (не успев пожить smile.gif ), еще до появления диалогового окна на экране.

Автор: Coocky 5.8.2004, 19:38
Действительно,в OnInitDialog() я создавал (кнопки,эдиты) через указатели,а CStatusBar и др. через обьекты.Пардон...Невнимательный smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)