Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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



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

Я работаю в 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, 12:29   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 4,574
Репутация: 1397
По умолчанию

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

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выводом текста на экран 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 21:44
Проблема с выводом текста limon PHP и другие серверные скрипты 6 30.11.2008 21:03




23:12.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
таргетированный трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru