Avatar billede tokelil Nybegynder
19. august 2003 - 02:26 Der er 4 kommentarer og
2 løsninger

Få værdien af en public variabel fra en anden Dialog

Jeg har lavet et lille Dialog based MFC program hvor jeg har min main dialog.(Lad os kalde den CDialog1) Fra den åbner jeg en anden dialog. (CDialog2)

Når min CDialog2 er åbnet og der trykkes på en knap vil jeg have den til at hente en værdi som ligger i en public bool i min Dialog1. Hvordan gør jeg det? (Det skal måske lige nævnes at jeg ikke ønsker at gøre det der er lettest og overføre værdierne når jeg oprettet Dialog2 objektet i Dialog1)

Jeg har prøvet med:
  CIRCBotDlg *pDlg = (CIRCBotDlg *)GetDlgItem(IDD_IRCBOT_DIALOG);

  bool bStart = pDlg->m_bStart;

Men det får programmet til at crache pga. pDlg == NULL...

Hvad skal jeg gøre for at få adgang til mine public variable fra Dialog1?
Avatar billede tjp Mester
19. august 2003 - 04:00 #1
Nu kender jeg ikke MFC, men indeholder CDialog2 ikke en reference til sin forælder eller har en main dialog ikke en global ditto, som du kan benytte?
Avatar billede jpk Nybegynder
19. august 2003 - 07:54 #2
CWnd har ganske rigtig en metode kaldet GetParent(). Med den får du en pointer til et CWnd's "forælder", altså skaber...

CIRCBotDlg* pDlg = (CIRCBotDlg*)GetParent();
Avatar billede tokelil Nybegynder
19. august 2003 - 12:24 #3
Tak det virker! Smider du lige et svar?
Avatar billede jpk Nybegynder
19. august 2003 - 12:38 #4
Jo tak...

Du kunne jo overveje at dele pointene mellem os, da tip's kommentar går i retningen af samme løsning..?
Avatar billede tokelil Nybegynder
19. august 2003 - 12:48 #5
Fair enough! :-) Så hvis du også lige smidder et svar tip?
Avatar billede tjp Mester
19. august 2003 - 20:07 #6
Jo tak! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester