
// Projekt_Lukas_GermanDlg.cpp: Implementierungsdatei
//

#include "pch.h"
#include "framework.h"
#include "Projekt_Lukas_German.h"
#include "Projekt_Lukas_GermanDlg.h"
#include "afxdialogex.h"
#include "cUnterformular.h"
#include "ctime"
#include "iostream"
#include <fstream>
#include <string>
#include <vector>

using namespace std;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CAboutDlg-Dialogfeld für Anwendungsbefehl "Info"

class CAboutDlg : public CDialogEx
{
public:
	CAboutDlg();

// Dialogfelddaten
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_ABOUTBOX };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung

// Implementierung
protected:
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()


// CProjektLukasGermanDlg-Dialogfeld



CProjektLukasGermanDlg::CProjektLukasGermanDlg(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_PROJEKT_LUKAS_GERMAN_DIALOG, pParent)
	
	, Check2(FALSE)
	, Ausgabe(_T(""))
	, Check3(FALSE)
	, Check4(FALSE)
	, Check5(FALSE)
	, Check6(FALSE)
	, Check7(FALSE)
	, Check8(FALSE)
	, Check9(FALSE)
	
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CProjektLukasGermanDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, CTL_Progress, ctlProgress);
	DDX_Control(pDX, IDC_SLIDER1, ctlSlider);
	//  DDX_Control(pDX, IDC_CHECK1, Ladeklappe);
	//  DDX_Control(pDX, IDC_EDIT1, Edit_ctl);
	//  DDX_Control(pDX, IDC_CHECK1, Check1);

	DDX_Check(pDX, IDC_CHECK1, Check2);
	DDX_Text(pDX, IDC_EDIT1, Ausgabe);
	DDX_Check(pDX, IDC_CHECK2, Check3);
	DDX_Check(pDX, IDC_CHECK3, Check4);
	DDX_Check(pDX, IDC_CHECK4, Check5);
	DDX_Check(pDX, IDC_CHECK5, Check6);
	DDX_Check(pDX, IDC_CHECK6, Check7);
	DDX_Check(pDX, IDC_CHECK7, Check8);
	DDX_Check(pDX, IDC_CHECK8, Check9);
	//  DDX_Control(pDX, IDC_BUTTON1, Button1);
	//  DDX_Control(pDX, IDC_BUTTON1, ButtonA);
	DDX_Control(pDX, IDC_BUTTON2, Start);
	//  DDX_Control(pDX, IDC_BUTTON7, Licht);
	//  DDX_Control(pDX, IDC_BUTTON7, Licht);
}

BEGIN_MESSAGE_MAP(CProjektLukasGermanDlg, CDialogEx)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDCANCEL, &CProjektLukasGermanDlg::OnBnClickedCancel)
	ON_BN_CLICKED(IDC_BUTTON5, &CProjektLukasGermanDlg::OnBnClickedButton5)
	ON_BN_CLICKED(IDC_BUTTON6, &CProjektLukasGermanDlg::OnBnClickedButton6)
	ON_EN_CHANGE(IDC_EDIT1, &CProjektLukasGermanDlg::OnEnChangeEdit1)
	ON_NOTIFY(NM_CUSTOMDRAW, IDC_PROGRESS1, &CProjektLukasGermanDlg::OnNMCustomdrawProgress1)
	ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER1, &CProjektLukasGermanDlg::OnNMCustomdrawSlider1)
	ON_NOTIFY(NM_CUSTOMDRAW, CTL_Progress, &CProjektLukasGermanDlg::OnNMCustomdrawProgress)
	ON_BN_CLICKED(IDC_CHECK1, &CProjektLukasGermanDlg::OnBnClickedCheck1)
	ON_BN_CLICKED(IDC_CHECK2, &CProjektLukasGermanDlg::OnBnClickedCheck2)
	ON_BN_CLICKED(IDC_CHECK3, &CProjektLukasGermanDlg::OnBnClickedCheck3)
	ON_BN_CLICKED(IDC_CHECK4, &CProjektLukasGermanDlg::OnBnClickedCheck4)
	ON_BN_CLICKED(IDC_CHECK5, &CProjektLukasGermanDlg::OnBnClickedCheck5)
	ON_BN_CLICKED(IDC_CHECK6, &CProjektLukasGermanDlg::OnBnClickedCheck6)
	ON_BN_CLICKED(IDC_CHECK7, &CProjektLukasGermanDlg::OnBnClickedCheck7)
	ON_BN_CLICKED(IDC_CHECK8, &CProjektLukasGermanDlg::OnBnClickedCheck8)
	ON_BN_CLICKED(IDC_BUTTON1, &CProjektLukasGermanDlg::OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON4, &CProjektLukasGermanDlg::OnBnClickedButton4)
	ON_BN_CLICKED(IDC_BUTTON2, &CProjektLukasGermanDlg::OnBnClickedButton2)
	ON_BN_CLICKED(IDC_BUTTON7, &CProjektLukasGermanDlg::OnBnClickedButton7)
END_MESSAGE_MAP()


// CProjektLukasGermanDlg-Meldungshandler

BOOL CProjektLukasGermanDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// Hinzufügen des Menübefehls "Info..." zum Systemmenü.

	// IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != nullptr)
	{
		BOOL bNameValid;
		CString strAboutMenu;
		bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
		ASSERT(bNameValid);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Symbol für dieses Dialogfeld festlegen.  Wird automatisch erledigt
	//  wenn das Hauptfenster der Anwendung kein Dialogfeld ist
	SetIcon(m_hIcon, TRUE);			// Großes Symbol verwenden
	SetIcon(m_hIcon, FALSE);		// Kleines Symbol verwenden

	// TODO: Hier zusätzliche Initialisierung einfügen

	ctlSlider.SetRange(0 , 100);
	ctlProgress.SetRange(0, 100);
	ctlSlider.SetPos(0);

	return TRUE;  // TRUE zurückgeben, wenn der Fokus nicht auf ein Steuerelement gesetzt wird
}

void CProjektLukasGermanDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialogEx::OnSysCommand(nID, lParam);
	}
}

// Wenn Sie dem Dialogfeld eine Schaltfläche "Minimieren" hinzufügen, benötigen Sie
//  den nachstehenden Code, um das Symbol zu zeichnen.  Für MFC-Anwendungen, die das 
//  Dokument/Ansicht-Modell verwenden, wird dies automatisch ausgeführt.

void CProjektLukasGermanDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // Gerätekontext zum Zeichnen

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// Symbol in Clientrechteck zentrieren
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Symbol zeichnen
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}

// Die System ruft diese Funktion auf, um den Cursor abzufragen, der angezeigt wird, während der Benutzer
//  das minimierte Fenster mit der Maus zieht.
HCURSOR CProjektLukasGermanDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}



void CProjektLukasGermanDlg::OnBnClickedCancel()
{
	// TODO: Add your control notification handler code here
	CDialogEx::OnCancel();
}


void CProjektLukasGermanDlg::OnBnClickedButton5()
{
	CDialogEx::OnCancel();
	// TODO: Add your control notification handler code here
}


void CProjektLukasGermanDlg::OnBnClickedButton6()
{
 
	ZUnterformular.DoModal();
}




void CProjektLukasGermanDlg::OnEnChangeEdit1()
{
	// TODO:  If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialogEx::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.

	// TODO:  Add your control notification handler code here
}


void CProjektLukasGermanDlg::OnNMCustomdrawProgress1(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
	// TODO: Add your control notification handler code here
	*pResult = 0;
}


void CProjektLukasGermanDlg::OnNMCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);

	ctlProgress.SetPos(100-ctlSlider.GetPos());
	turbo = ctlSlider.GetPos();
	bine.Format("%i", turbo);
	UpdateData(0);

	Auswertung();

	*pResult = 0;
}


void CProjektLukasGermanDlg::OnNMCustomdrawProgress(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
	
	



	*pResult = 0;
}


void CProjektLukasGermanDlg::OnBnClickedCheck1()
{
	// TODO: Add your control notification handler code here
#


	Auswertung();
}


void CProjektLukasGermanDlg::Auswertung()
{
	// TODO: Add your implementation code here.
	UpdateData();
	Ausgabe = "";

	if (Check2 == true)
	{
		Ausgabe += "\r\nLadeklappe eingefahren";
	}

	
	if (Check3 == true)
	{
		Ausgabe += "\r\nGepaeckklappe geoeffnet";
	}

	if (Check4 == true)
	{
		Ausgabe += "\r\nTueren geschlossen";
	}

	if (Check5 == true)
	{
		Ausgabe += "\r\nScheibenwischer aktiviert";
	}

	if (Check6 == true)
	{
		Ausgabe += "\r\nTBBU aktiviert";
	}

	if (Check7 == true)
	{
		Ausgabe += "\r\nLOPT aktiviert";
	}
	
	if (Check8 == true)
	{
		Ausgabe += "\r\nFMU aktiviert";
	}

	if (Check9 == true)
	{
		Ausgabe += "\r\nNMS aktiviert";
	}

	if (treibstoff == true)
	{
		Ausgabe += "\r\nTankinhalt:" + Tank;
	}
	
	if (lichtschalter == true)
	{
		Ausgabe += "\r\nLicht an";
	}
	
	
	if (Tank == "100" && lichtschalter == true && Check4 == true && Check8 == true && Check9 == true && Check2 == true && bine == "100")
	{
		Start.EnableWindow(true);
	}

	if (Check3 == true || Check5 == true || Check6 == true || Check7 == true)
	{
		Start.EnableWindow(false);
	}
	

	Ausgabe += "\r\nTurbinen auf:" + bine;
	

	

	UpdateData(0);
}


void CProjektLukasGermanDlg::OnBnClickedCheck2()
{
	Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedCheck3()
{
	Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedCheck4()
{
	Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedCheck5()
{
	Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedCheck6()
{
	Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedCheck7()
{
	Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedCheck8()
{
	Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedButton1()
{
	treibstoff = true;

		srand((unsigned)time(NULL));   //Zufallsgenerator initialisieren

		
			zufall = rand() % 100 + 0;     //Zufallzahl ziehen zwischen 0 und 100
			zufall;

			Tank.Format("%i", zufall);
		
			Auswertung();
}


void CProjektLukasGermanDlg::OnBnClickedButton4()
{
	Tank = "100";
	Auswertung();
	// TODO: Add your control notification handler code here
}


void CProjektLukasGermanDlg::OnBnClickedButton2()
{
	MessageBox("Sie sind gestartet!");
	
	ofstream Datei("Test.txt");
		
	
	Datei << Ausgabe;

	
	Datei.close();
}


void CProjektLukasGermanDlg::OnBnClickedButton7()
{
	lichtschalter = true;
	Auswertung();
	

}

//int _tmain(int argc, _TCHAR* argv[])
//{
	//ifstream datei("C:\\Users\\power\\Desktop\\test.txt");
	//string zeile;

//	while (getline(datei, zeile))
	//{
		//for (int i = 0; i < zeile.size(); i++)
		//{
			//if (zeile[i] == ',')
			//{
				//zeile[i] = ' ';
		//	}
		//}

		//string a;
		//int b;
		//double c;

	//}
	//return 0;
//}


/*int main()
{

	ofstream file("C:\\Users\\power\\Desktop\\test.txt");

	if (!file)
	{
		cerr << "dont open" << endl;
		exit(-1);
	}


	vector<string> einkaufsliste;
	for (auto& gegenstand : einkaufsliste)
	{
		cout << gegenstand;
	}





	system("Pause");
	return 0;
}*/
