tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
13
ZUGRIFFE
641
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    Hallo,

    ich habe ein Problem mit Visual C++. Und zwar möchte ich in eineme Dialog A zwei Strings einlesen und diese in Dialog B wieder anzeigen.

    Das Einlesen der Strings in Dialog A funktioniert. Allerdings weiß ich nicht, wie ich die beiden Strings in Dialog B ausgeben soll.

    Kann mir jemand sagen wie das funktioniert. Das kann doch eigentlich nicht so schwer sein.

    Ich eigne mir gerade Visual c++ an und bin daher noch etwas unerfahren mit C++.

    Vorab vielen Dank für Eure konstruktiven Hinweise.
     

  2. #2
    Ritchie_Fomm Ritchie_Fomm ist offline Mitglied Gold
    Registriert seit
    Jul 2006
    Beiträge
    101
    hallo,

    leite doch einfach die CDialog klasse ab und baue dir eigenen Konstruktor wo du die Strings übergibst.

     

  3. #3
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    Ich habe das gestern noch einmal wie folgt versucht:

    Also, ich möchte von einem Dialog A zwei String nach Dialog B senden.
    Ich habe das bisher so versucht:
    Im Dialog A gibt es zwei Strings
    1. m_strSendeArtikel (public)
    2. m_strSendeMenge (public)

    Im Dialog B bilde ich eine Instanz der Klasse DialogA wie folgt:
    CDialogA m_dSendeArtikel
    CDialogA m_dSendeMenge

    Im Dialog B greife ich dann wie folgt auf die Werte zu:
    m_strEmpfangArtikel=m_dSendeArtikel.m_strSendeArtikel;
    m_strEmpfangMenge=m_dSendeMenge.m_strSendeMenge;

    Mit m_strEmpfangArtikel möchte ich dann die Strings aus Dialog A in Dialog B
    anzeigen.

    Dies funktioniert aber leider nicht so, wie ich mir das gedacht habe.
    Es müsste aber doch eingentlich so auch funktionieren.
     

  4. #4
    Ritchie_Fomm Ritchie_Fomm ist offline Mitglied Gold
    Registriert seit
    Jul 2006
    Beiträge
    101
    Hallo,

    ab wann greifst du denn auf die Flags zu, wenn der Dialog bereitsgeschlossen ist

    Grüße
    R.
     

  5. #5
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    Der Dialog A ist die ganze Zeit über geöffnet.
     

  6. #6
    Ritchie_Fomm Ritchie_Fomm ist offline Mitglied Gold
    Registriert seit
    Jul 2006
    Beiträge
    101
    Hallo,

    hast du überprüft ob in den Strings DialogA was drin steht, wenn ja ist die Frage steht in deinen DialogB Flags nichts drin oder wird der Text einfach nicht dargestellt in einem Textfeld o.ä. ?

    Wenn in deine DialogB Flags etwas drin steht. Nimm CEdit->SetWindowText(m_strEmpfangArtike)

    Grüße
    R.
     

  7. #7
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    Im Dialog A enthalten die Strings den richtigen Inhalt.
    Und ich habe auch überprüft ob die Strings im Dialog B angezeigt werden. Auch das funktioniert.

    Die Flags im Dialog B sind leer.

    Das Problem liegt in der Übergabe der Strings von Dialog A nach Dialog B.

    Zum Verständnis: Das Prinzip, wie ich es oben angewendet habe ist doch richtig?
     

  8. #8
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von king_of_drums
    Ich habe das bisher so versucht:
    Im Dialog A gibt es zwei Strings
    1. m_strSendeArtikel (public)
    2. m_strSendeMenge (public)

    Im Dialog B bilde ich eine Instanz der Klasse DialogA wie folgt:
    CDialogA m_dSendeArtikel
    CDialogA m_dSendeMenge

    Im Dialog B greife ich dann wie folgt auf die Werte zu:
    m_strEmpfangArtikel=m_dSendeArtikel.m_strSendeArtikel;
    m_strEmpfangMenge=m_dSendeMenge.m_strSendeMenge;
    Mit "CDialogA m_dSendeArtikel" und "CDialogA m_dSendeMenge" legst du neue Objekte der Dialogklasse "CDialogA" an, die nichts mit dem existierenden Dialog A zu tun haben. Daher klappt der Zugriff auf die Membervariablen nicht. Du müsstest dem Dialog B jeweils einen Zeiger auf den vorhandenen Dialog A übergeben bzw. den Zugriff auf das Dialogobjekt ermöglichen.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  9. #9
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    Wie übergebe ich nun dem Dialog B einen Zeiger vom Dialog A? Oder wie kann ich dem Dialog B den Zugriff auf Dialog A ermöglichen?
     

  10. #10
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    Geht das nicht auch mit der "SendMessage" Funktion?
     

  11. #11
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von king_of_drums
    Wie übergebe ich nun dem Dialog B einen Zeiger vom Dialog A? Oder wie kann ich dem Dialog B den Zugriff auf Dialog A ermöglichen?
    Das hängt davon ab, wie deine App aufgebaut. Ist es eine dialogbasierte Anwendung und DialogA ist der Hauptdialog? Werden die beiden Dialoge gleichberechtigt gestartet oder wird z.B. DialogB innerhalb von DialogA gestartet?
    Zitat Zitat von king_of_drums
    Geht das nicht auch mit der "SendMessage" Funktion?
    Im Prinzip schon, bedeutet aber ebenfalls, das du ein Objekt oder Fensterhandle vom DialogA haben musst.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  12. #12
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    Die Anwendung Dialogfeldbasierend. Dialog A ist mein Hauptdialog und Dialog B wird von Dialog A aufgerufen.
     

  13. #13
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Dann kannst du im Dialog B das machen:
    Code cpp:
    1
    2
    3
    
    CDialogA *pDlg = (CDialogA *)AfxGetMainWnd();
    m_strEmpfangArtikel = pDlg->m_strSendeArtikel;
    m_strEmpfangMenge   = pDlg->m_strSendeMenge;
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  14. #14
    king_of_drums king_of_drums ist offline Mitglied Bronze
    Registriert seit
    Aug 2006
    Beiträge
    25
    SUPER Es funktioniert. Vielen Dank
     

Ähnliche Themen

  1. Dialog aus Dialog heraus öffnen
    Von sTEk im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 08.12.08, 22:07
  2. Dialog in Dialog und Enter Taste
    Von JoachimJogi im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 26.05.07, 05:44
  3. [C++] Zugriff auf Dialog aus anderem Dialog
    Von JoachimJogi im Forum VisualStudio & MFC
    Antworten: 7
    Letzter Beitrag: 20.02.07, 17:06
  4. Strings von Dialog A nach Dialog B übertragen
    Von king_of_drums im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 15.08.06, 13:47
  5. Antworten: 5
    Letzter Beitrag: 24.05.05, 12:49