Aus 1.Dialog eine Combobox des 2.Dialogs füllen
-
probier mal das oder ähnliches, sollte funzen !
bool ErsterDialog::GetString(CString& str) { static int nCounter=0; nCounter++; switch(nCounter) { case 1: str="Bla"; return true; case 2: str="furz"; return true; default: nCounter=0; return false; } }
BOOL ZweiterDialog::OnInitDialog() { CDialog::OnInitDialog(); // hier iss noch dein code ! CString str; while(((ErsterDialog*)GetParent())->GetString(str)) { m_combo_control.AddString(str); } }
-
was vergessen hab !
void ErsterDialog::Irgendwo() { ZweiterDialog dlg; dlg.DoModal(); }
-
@nonamebody mir gehts um ein array. bei einer normalen variable hab ich keine probleme die zu übertragen.
@muhkuh welchen typs muss der zeiger sein? wie sag ich dem zeiger dass er auf mein array zeigt. wie kann ich in der 2.dialog klasse dann über den zeigen wieder die einzelnen elemente bearbeiten... und überhaupt und wie soll das gehen?
-
Kannst ja ähnlich machen, du weisst doch die anzahl deiner arrayelemente oder ?
bool ErsterDialog::GetString(CString& str) { // nNumberOfEntries = ANzahl der Arrayelemente // astrEntries = CString Array static int nCounter=0; if(nCounter<nNumberOfEntries) { str=m_astrEntries[nCounter]; return true; } else { nCounter=0; return false; } }
Falls es sich um ein CString Array handelt, kannste ja mal die CStringList versuchen !
-
ich will aber nicht jedes einzelne element rüber schicken sondern mit einem schlag sagen können Dialog2Array=Dialog1Array oder im 2.dialog sagen können Dialog1Array[5]="lala"
mfg, TFTS
-
wie kann ich eine combobox füllen/reseten, wenn der dialog schon existiert?
dlg->m_combo_control.ResetContent(); funktioniert da nicht
-
Du musst natürlich nachdem du die Combobox geleert hast, die Oberfläche auch wieder updaten!
die Zauberformel:
dlg->UpdateData(false);
-
nein, das problem ist ja, dass es eine fehlermeldung gibt bei dem ausführen der zeile
ich vermute ich darf das fenster vorher nicht mit
dlg->Create(IDD_LAGER_DIALOG, NULL);
initialisieren. Bloß wie mach ich das dann?
es müsste dann sicherlich sowas ähnliches wiedlg->SwitchTo(IDD_LAGER_DIALOG,NULL);
sein
muss ich die dlg variable trotzdem mit
dlg = new CLagerDlg();
initialisieren?
mfg, TFTS
-
du musst das Fenster mit Create initialisieren
dein Fehler liegt dann irgenwo anders...
sag doch mal, wo du die Combobox "resetten" willst und poste wie du das machst...
bissl mehr Code musst du schon preisgeben!Übrigens: welche Fehlermeldung gibt es denn? Das könnte schon helfen....
EDIT:
dlg->SwitchTo(IDD_LAGER_DIALOG,NULL);
hä?
Was er machen will?
-
ok jetzt mal ganz im detail
ich habe hier meinen alten dialog (das ist also der dialog der beim starten des programms aufgerufen wird)
aus einem neuen dialog heraus, will ich eine combobox des alten dialogs resetenCLagerDlg *dlg; dlg = new CLagerDlg(); dlg->Create(IDD_LAGER_DIALOG, NULL); dlg->ProgrammordnerZuArbeitsordner(); //Variableninitialisierung Firmennr=-1; Spaltennr=0; dlg->Trennzeichen=Trennzeichen; dlg->empty=empty; dlg->m_herstellerfilter_control.ResetContent(); dlg->m_vherstellerfilter_control.ResetContent(); m_ansprechpartner_control.ResetContent(); m_firmenname_control.ResetContent(); dlg->m_hersteller_control.ResetContent(); dlg->m_lieferant1_control.ResetContent(); dlg->m_lieferant2_control.ResetContent();
das ist der code...
durch eine MesssageBox beim Start meines alten dialoges weiss ich, dass das programm nun versucht den alten dialog neu zu erstellen, was natürlich schwachsinn ist, da dieser dialog schon erstellt ist (er ist ja nur im hintergrund) als fehlermeldung bekomm ich dann folgendes:Unbehandelte Ausnahme in Lager.exe! Stack overflow!
ich hoffe das hilft dir etwas.
noch was, ich bin mir ziemlich sicher, dass diese create fkt an dieser stelle falsch sein muss. ich will ja den dialog nicht neu erstellen sondern nur bearbeiten > er existiert ja schon
mfg, TFTS
-
*lala*
-
wahh ich habs... nix mit neu createn
((CLagerDlg*) GetParent())->m_herstellerfilter_control.ResetContent();
das ist die zauberformel... jetz muss ich bloß noch testen, ob ich damit auch funktionen aufrufen und variablen schreiben/lesen kann.
mfg, TFTS