Я новичок в программировании, я создал приложение GUI на основе MFC и связал переменные с помощью Cptr с файлом классов.Теперь мне нужно распечатать результаты этого файла класса.Выходные данные являются значениями переменных, поэтому я не могу отобразить строку.
Я создал диалоговое окно «Вывод» вместе с его файлом класса и заголовка, но не могу передать значения из одного класса в другой и значенияне выводятся в диалоговом окне «Вывод».Я пробовал TRACE & OutputDebugString, но у меня ничего не получилось, я не уверен, что передача значений является правильным вариантом.
Код файла класса:
std::cout << HV_Tmid_1 << std::endl;
std::cout << HV_Tmid_2 << std::endl;
std::cout << HV_Tmid_3 << std::endl;
std::cout << HV_Tmid_4 << std::endl;
std::cout << LV_Tmid_1 << std::endl;
std::cout << LV_Tmid_2 << std::endl;
std::cout << LV_Tmid_3 << std::endl;
std::cout << LV_Tmid_4 << std::endl;
Код класса выходного диалога:
// Output.cpp : implementation file
//
#include "stdafx.h"
#include "Thermal Tool.h"
#include "Output.h"
#include "afxdialogex.h"
#include "TT.h"
#include <iostream>
#include <sstream>
#include <string>
// Output dialog
IMPLEMENT_DYNAMIC(Output, CDialog)
Output::Output(CWnd* pParent /*=nullptr*/)
: CDialog(IDD_OUTPUT, pParent)
{
m_d_hvmid1 = _T("");
m_d_hvmid2 = _T("");
m_d_hvmid3 = _T("");
m_d_hvmid4 = _T("");
m_d_lvmid1 = _T("");
m_d_lvmid2 = _T("");
m_d_lvmid3 = _T("");
m_d_lvmid4 = _T("");
}
Output::~Output()
{
}
void Output::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_HV_MID1, m_d_hvmid1);
DDX_Text(pDX, IDC_HV_MID2, m_d_hvmid2);
DDX_Text(pDX, IDC_HV_MID3, m_d_hvmid3);
DDX_Text(pDX, IDC_HV_MID4, m_d_hvmid4);
DDX_Text(pDX, IDC_LV_MID1, m_d_lvmid1);
DDX_Text(pDX, IDC_LV_MID2, m_d_lvmid2);
DDX_Text(pDX, IDC_LV_MID3, m_d_lvmid3);
DDX_Text(pDX, IDC_LV_MID4, m_d_lvmid4);
}
BEGIN_MESSAGE_MAP(Output, CDialog)
END_MESSAGE_MAP()
// Output message handlers
void Output::AssignDlgToPtr1()
{
m_d_hvmid1.Format(_T("%f"), Cptr.HV_Tmid_1);
m_d_hvmid2.Format(_T("%f"), Cptr.HV_Tmid_2);
m_d_hvmid3.Format(_T("%f"), Cptr.HV_Tmid_3);
m_d_hvmid4.Format(_T("%f"), Cptr.HV_Tmid_4);
m_d_lvmid1.Format(_T("%f"), Cptr.LV_Tmid_1);
m_d_lvmid2.Format(_T("%f"), Cptr.LV_Tmid_2);
m_d_lvmid3.Format(_T("%f"), Cptr.LV_Tmid_3);
m_d_lvmid4.Format(_T("%f"), Cptr.LV_Tmid_4);
}
Вывод также отображается пустым из-за
void CThermalToolDlg::OnCalculate()
{
UpdateData();
if (!Validate()) return;
AssignDlgToPtr();
Cptr.OnCalculate();
// need to add something here to run Output Dialog class before displaying output box
// AssignDlgToPtr1() is not a member in this class;
Output Dlg;
Dlg.DoModal();
UpdateData(FALSE);
}
Я ожидаю напечатать строковые значения в диалоговом окне вывода.Если бы кто-то мог предоставить мне правильный код или указать правильный учебник, я был бы благодарен.