Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Работа с диалоговым окном


Автор: Anakarn 30.3.2010, 12:27
Пытаюсь создать диалоговое окно, предварительно передав некоторым его элементам значения. 

 Например, переменной типа CEdit. Делаю это так: создал в дочернем окне в public строковую переменную:

Код
LPCTSTR str;


 При нажатии на кнопку в главном окне этой переменной задаётся значение и потом создаётся окно:

Код
void Ctest_projDlg::OnBnClickedButton5()
{
    Dialog_2 test;
    test.str = L"Test";
    test.DoModal();
}




Обработчик создания окна выглядит так:

Код
int Dialog_2::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    test_edit.SetWindowTextW(str);
    if (CDialog::OnCreate(lpCreateStruct) == -1)
        return -1;

    return 0;
}



Компилится нормально, но при создании диалогового окна падает на строчке 
Код
test_edit.SetWindowTextW(str);

. В чём проблема? Сам проект тоже выкладываю
Я новичок в работе с MFC, сильно не пинайте smile

Автор: Albor 30.3.2010, 13:00
Убери Dialog_2::OnCreate и добавь Dialog_2::OnInitDialog там вставь текст который тебе нужен. В момент работы Dialog_2::OnCreate твой эдит ещё не существует.

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