// zinsenDlg.cpp : Implementierungsdatei // #include "stdafx.h" #include "zinsen.h" #include "zinsenDlg.h" #include "Zinsfkt.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CZinsenDlg Dialogfeld CZinsenDlg::CZinsenDlg(CWnd* pParent /*=NULL*/) : CDialog(CZinsenDlg::IDD, pParent) { //{{AFX_DATA_INIT(CZinsenDlg) m_startkapital = _T(""); m_zinssatz = _T(""); m_laufzeit = _T(""); m_ausgabe = _T(""); //}}AFX_DATA_INIT // Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CZinsenDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CZinsenDlg) DDX_Text(pDX, startkapital_EF, m_startkapital); DDX_Text(pDX, Zinssatz_EF, m_zinssatz); DDX_Text(pDX, laufzeit_EF, m_laufzeit); DDX_CBString(pDX, COMBO_ausgabe, m_ausgabe); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CZinsenDlg, CDialog) //{{AFX_MSG_MAP(CZinsenDlg) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(ID_BN_RECHNEN, OnBnRechnen) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CZinsenDlg Nachrichten-Handler BOOL CZinsenDlg::OnInitDialog() { CDialog::OnInitDialog(); // 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 // ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten } // Wollen Sie Ihrem 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 für Sie erledigt. void CZinsenDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // Gerätekontext für Zeichnen SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Symbol in Client-Rechteck 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 { CDialog::OnPaint(); } } // Die Systemaufrufe fragen den Cursorform ab, die angezeigt werden soll, während der Benutzer // das zum Symbol verkleinerte Fenster mit der Maus zieht. HCURSOR CZinsenDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } void CZinsenDlg::OnBnRechnen() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen double startKapital, zinsSatz; int laufzeit; double Ertrag; char str[100]; // alte Werte aus der Liste löschen m_ausgabe.ResetContent(); // Benutzereingaben einlesen m_startkapital.GetWindowText(str, 100); startKapital = atof(str); m_zinssatz.GetWindowText(str, 100); zinsSatz = atof(str); m_laufzeit.GetWindowText(str, 100); laufzeit = (int) atof(str); // Kapitalentwicklung über die Jahre for (int i=0; i<= laufzeit;i++) { Ertrag = ErtragOhneZinseszins(startKapital, zinsSatz, i); sprintf(str,"%lf", Ertrag); m_ausgabe.AddString(str); } m_ausgabe.SetCurSel(laufzeit); }