1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Visual C++ Program Bug

Discussion in 'Programmieren' started by Don_Pazo, Sep 16, 2005.

Thread Status:
Not open for further replies.
  1. Don_Pazo

    Don_Pazo Byte

    Hallo,
    ich habe einen Programmchen erstellt, mit hilfe von MFC.

    Es ist "Einzel Dokument" mit der Klasse "CHtmlView". Ich habe zusetzlich einen Dialog-Fenster gebaut, der seine eigene Klasse "CVerbindung" abgeleitet von CDialog hat. In dem Dialog-Fenster soll man den Server, ein Paar andere Opzionen wählen. Am Ender bildet alles zusammen einen "LINK".

    Und jetz DAS PROBLEM:

    IN DEM DIALOG-FENSTER SOLLTE BEIM KLIKEN DER OK TASTE, DAS LINK ZU DER FUNKTION "Reqest(CString Link)" witer geleitet:

    <Code>
    //**********************************************
    // Verbindung.cpp
    #include "E_Learn.h"

    #include "E_LearnDoc.h"
    #include "Verbindung.h"
    #include "E_LearnView.h"
    ...
    ...

    void CVerbindung::OnOK()
    {
    // TODO: Zusätzliche Prüfung hier einfügen
    UpdateData(TRUE);
    /* gewählte Option vom ComboBox holen*/
    int index;
    CString OptionName;

    index = m_cCombo.GetCurSel();
    m_cCombo.GetLBText(index, OptionName);

    /* Verbindung zum Link aufbauen*/
    CString Link;

    Link= "http://" + m_strServer + "/servlet/statisticsgateway?QUERYID=" + OptionName + "&USERID=" + m_strBenutzer + "&PASSWD=" + m_strPasswort;

    CE_LearnView *ptr = NULL;
    ptr->Request(Link);
    CDialog::OnOK();
    }

    //**********************************************
    // E_LearnView.h
    ...
    ...
    protected:
    afx_msg void Request();
    ...
    ..

    //**********************************************
    // E_LearnView.cpp
    #include "E_Learn.h"

    #include "E_LearnDoc.h"
    #include "Verbindung.h"
    #include "E_LearnView.h"
    ...
    ...
    void CE_LearnView::Request(CString Link)
    {
    Navigate2(Link,0,NULL);
    // MessageBox("EHOOOO");
    }


    Es wird alles compiliert keinen Problem. Aber bei ausführen das Programm kommt es zu Fellermeldung. Das Link wird nicht angezeigt. Aber das MessageBox funktionirt, wenn man Navigate2 auskomentiert.

    Könnte mir bitte jemand einen Rat geben, was ich falsch gemacht habe !!!

    Danke
     
  2. Don_Pazo

    Don_Pazo Byte

    // ******** LÖSUNG ********/

    void CVerbindung::OnOK()
    {
    // TODO: Zusätzliche Prüfung hier einfügen
    UpdateData(TRUE);
    /* gewählte Option vom ComboBox holen*/
    int index;
    CString OptionName;

    index = m_cCombo.GetCurSel();
    m_cCombo.GetLBText(index, OptionName);

    /* Verbindung zum Link aufbauen*/
    CString Link;
    Link= "http://" + m_strServer + "/servlet/statisticsgateway?QUERYID=" + OptionName + "&USERID=" + m_strBenutzer + "&PASSWD=" + m_strPasswort;

    //****** DAS TRICK *******//

    CView *ptr = ((CFrameWnd *)AfxGetMainWnd())->GetActiveView();

    if( ptr && ptr->IsKindOf(RUNTIME_CLASS(CE_LearnView) ))
    {
    ((CE_LearnView *)ptr)->Request(Link);
    }

    CDialog::OnOK();
    }
     
Thread Status:
Not open for further replies.

Share This Page