Toon posts:

probleem in visual c++6 met variabels doore geven

Pagina: 1
Acties:
  • 43 views sinds 30-01-2008

Verwijderd

Topicstarter
kan mij iemand uit leggen waarom mijn project 3dialog based variabelk niet werkt

je kunt het douwn loaden

http://home.hetnet.nl/~mtd128/w_problem_vc6.zip

ik kan wel van het 1e shild dialog naar het main program via een variabel pointer
de data op halen

maar wil ik van het 2e child dialog naar het 1e dialog waardes ophalen
krijg ik de text niet meer terug!!!

bijvoorbaat dank

matje

Verwijderd

Ja, dat kan en zal ik uitleggen, maar ik zou eerst een paar andere opmerkingen willen maken.

Om te beginnen denk ik dat er een foutje in je code zit: in 'test multie windowDlg.cpp', lijn 193 en volgende:
C++:
1
2
3
4
5
6
if (m_dialog1.DoModal() == IDOK);
{
    // als op ok gelkikt
    m_UitvoerVenster = m_dialog1.m_invoer;  
    UpdateData(FALSE);
}

Die ';' na die if is daar niet gewenst denk ik, want nu voer je het stuk tussen { en } altijd uit.

Ten tweede kan het nuttig zijn om niet je complete folder te zippen en online te gooien. De complete 'Debug' subdirectory bevat alleen maar object files en andere zooi die door Visual Studio gegenereerd wordt bij het compileren en linken enzo. Het niet meenemen van je Debug folder maakt je zip bestand een heel stuk kleiner. Voor mij is die 2,3 MB echt geen probleem (goede inetconnectie hier) maar voor iemand met een klein lijntje is 35K of 2,3 MB een flink verschil. Misschien dat mensen sneller geneigd zijn naar je probleem te kijken als het maar 35K download is ipv 2+ MB.

Anyway, je probleem dus. Je probleem is dat je in 'dialog2.cpp' gebruik maakt van m_dialog111.m_invoer (bvb in lijn 53 en 65). Dat is, zie de header, een CString member van een Cdialog1 object, akkoord? Op dezelfde manier gebruik je op je main paneel, test multie windowDlg.cpp, de invoer die eveneens zo'n CString is van een Cdialog1 object. Bvb in lijn 196 zoals ook aangegeven in dat if block hierboven: 'm_UitvoerVenster = m_dialog1.m_invoer;'. Helaas voor jou zijn die twee Cdialog1 objecten NIET dezelfde. Zowel het CTestmultiewindowDlg object als het Cdialog2 object hebben een compleet Cdialog1 object als member zitten, dus ieder heeft zijn eigen Cdialog1 object. Conclusie: op window 2 ga jij de invoer van een ander, nog nooit getoond window 1 object gebruiken ipv de invoer van het al getoonde window 1 object. En die is natuurlijk leeg, en dat is waarom je niets ziet.

Er zijn een aantal oplossingen voor je probleem: het meest makkelijke is natuurlijk in je main window de invoer gelijk naar je window 2 sturen. Dat heb ik even gedaan en dan werkt het prima. Je kunt de gewijzigde code (inclusief fix voor je if probleem wat ik hierboven aanhaalde) hier afhalen (34K).

Persoonlijk zou ik het een beetje anders gaan designen, maar dat zou me te ver leiden. Da's geen antwoord op je vraag meer. Ik hoor het wel als je daar vragen over hebt ;)

[ Voor 3% gewijzigd door Verwijderd op 30-10-2004 22:24 ]


Verwijderd

Topicstarter
al vast hartelijk dank voor het bekijken van mijn source file

stel het zeer op rijs
ik ben een nieuwbie in visual ben nu ongeveer 7 maanden bezig met c++ en visual
bedankt dat je het hebt bekeken ga nu eerst even bestuderen wat je priecies gedaan hebt en zal morgen avond even vertelen of ik het begrepen heb al vast vellen male bedankt :)

  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 24-11-2025

PommeFritz

...geen friet

Is je toetsenbord kapot? Er zitten ook shift, punt en komma op.

FireFox - neem het web in eigen hand


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:40

gorgi_19

Kruimeltjes zijn weer op :9

Zie P&W FAQ - De "quickstart"

Het is niet de bedoeling van Programming & Webscripting dat je even je code online zet en dat anderen voor je gaan debuggen. Dit is iets wat je zelf kan en moet doen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Dit topic is gesloten.