Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2016, 11:12   #1
erslgoeirjh
Форумчанин
 
Регистрация: 19.05.2009
Сообщений: 153
По умолчанию Проблема с выводом текста в текстовые поля диалога

Я работаю в Visual C++ 2012.

Есть класс CSourceNUDialog : public CDialog

Код:
class CSourceNuDialog : public CDialog
{
//...
public:
    void  setTextsIntoEdits(char *s1, char *s2, char *s3, char *s4, char *s5, char *s6, char *s7, char *s8);
    //...
};

В этом классе есть функция setTextsIntoEdits:

Код:
void  CSourceNuDialog::setTextsIntoEdits(char *s1, char *s2, char *s3, char *s4, char *s5, char *s6, char *s7, char *s8)
{
    m_IDC_EDIT1.SetWindowTextA(s1);
    m_IDC_EDIT2.SetWindowTextA(s2);
    m_IDC_EDIT3.SetWindowTextA(s3);
    m_IDC_EDIT4.SetWindowTextA(s4);
    m_IDC_EDIT5.SetWindowTextA(s5);
    m_IDC_EDIT6.SetWindowTextA(s6);
    m_IDC_EDIT7.SetWindowsTextA(s7);
    m_IDC_EDIT8.SetWindowTextA(s8);
}

В вызывающей функции я пишу:

Код:
CSourceNuDialog  mySourceNuDialog(this);

strcpy(s1,"a");  strcpy(s2,"b");  strcpy(s3,"c");  strcpy(s4,"d");  strcpy(s5,"e");  strcpy(s6,"f");  strcpy(s7,"g");  strcpy(s8,"h");
mySourceNuDialog.setTextsIntoEdits(s1,s2,s3,s4,s5,s6,s7,s8);
mySourceNuDialog.DoModal();

И в отладчике внутри функции setTextsIntoEdits на первой же строке
Код:
m_IDC_EDIT1.SetWindowTextA(s1);
программа бьётся с сообщением об ошибке:

Цитата:
Debug Assertion Failed!
Program: C:\Windows\system32\mfc110d.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\s rc\mfc\winocc.cpp
Line: 246

Что это означает? Как исправить эту ошибку?
erslgoeirjh вне форума Ответить с цитированием
Старый 28.11.2016, 11:29   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Диалог еще создать надо.
Создав класс окно еще не создано.
У вас оно создается при вызыве DoModal, соответственно данные надо устанавливать из OnInitDialog.
В принципе все делается не так. Создаются переменные для нужных данных и делается data exchange этих данных с окнами.
В итоге ваша setTextsIntoEdits будет устанавливать эти переменные а потом диалог сам будет брать из них.

Ref:
https://msdn.microsoft.com/en-us/library/xwz5tb1x.aspx
https://www.codeproject.com/articles...xchange-in-mfc
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выводом текста на экран JoBl Win Api 9 24.01.2012 01:56
Проблема с выводом текста в DIV vlad.md HTML и CSS 6 20.11.2011 19:33
Отправка Текста из ListBox в текстовые поля unicode Общие вопросы Delphi 5 14.05.2009 08:46
Текстовые поля. Проблема spygms Общие вопросы Delphi 4 09.01.2009 20:44
Проблема с выводом текста limon PHP 6 30.11.2008 20:03