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


Автор: erslgoeirjh 28.11.2016, 11:06
Я работаю в 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\src\mfc\winocc.cpp
Line: 246


Что это означает? Как исправить эту ошибку?

Автор: vol4ek 28.11.2016, 13:19
я ничего не понял). ты из основного окна пытаешься изменить текст в эдитах другого диалога?

Автор: vol4ek 28.11.2016, 14:35
и еще я заметил DoModal() последним. как вы меняете параметры компонентов окна которое еще не создано. Эдитов еще не существует, а вы уже SetWindowText() делаете.
короче поясните.

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