000
09.12.2004, 12:56 Uhr
~krozey
Gast
|
hallo,
eins vorweg, ich bin anfänger und bitte darum dies bei antworten zu berücksichtigen.
mein problem:
ich habe eine dialogbasierte anwendung erstellt, auf dieser befindet sich ein listensteuerelement sowie eingabe felder. dort können daten eingetragen werden, diese daten können auch gespeichert und geladen werden; alles funktioniert.
aus platzgründen möchte ich das mit dem registerkartensteuerelement aufteilen, in das erste register kommt das listensteuerelement und in das zweite register die eingabefelder.
mit der anleitung von uwe aus der FAQ 'Registerkarten in mein Projekt aufnehmen' habe ich 2 register in meiner anwendung. in das erste register habe ich das listensteuerelement eingefügt, das zweite register ist noch leer.
das problem ist jetzt, wie bekomme ich spalten in das steuerelement das sich im dialog für das erste register befindet und wie kann ich mit einem steuerelement das sich auf dem einem dialog befindet das steuerelement ansprechen das sich auf dem anderen dialog befindet (anders die daten in den eingabe feldern vom zweiten dialog in das listenelement vom ersten dialog)
die spaltennamen und -breite habe ich zuvor im OnInitDialog() festgelegt, aber das funktioniert nicht mit dem listenelement das sich jetzt im ersten registerdialog befindet
das alte listensteuerelement hiess 'IDC_DATEN', die member-variable 'm_Daten' vom typ 'CListCtrl' die in der klasse CTemp_protokollDlg (klasse des hauptdialogs) steht das neue heisst 'IDC_REG1_DATEN', die member-variable 'm_RDaten' vom gleichen typ die in der klasse CSeite1 steht
im 'OnInitDialog()' habe ich die spalten bisher so die spaltennamen festgelegt
| Code: |
m_Daten.InsertColumn ( 0, _T("Datum "), LVCFMT_LEFT, -1, 0 ); m_Daten.InsertColumn ( 1, _T("Uhrzeit "), LVCFMT_LEFT, -1, 1 ); ... usw
|
was ich probiert habe war das ich eine membervariable festgelegt habe typ 'CSeite1' name 'm_cSeite1'. dann habe ich in 'OnInitDialog()' von 'CTemp_protokollDlg' ein 'm_cSeite1.Initialisieren();' reingepackt und dann eine memberfunktion in der klasse 'CSeite1' vom typ 'void' und deklaration 'Initialisieren()' erstellt. dort habe ich dann
| Code: |
m_RDaten.InsertColumn ( 0, _T("Datum "), LVCFMT_LEFT, -1, 0 ); m_RDaten.InsertColumn ( 1, _T("Uhrzeit "), LVCFMT_LEFT, -1, 1 ); ... usw
|
es wird ohne fehler kompiliert, der debug-release bringt die fehlermeldung 'debug assertion', der endrelease bringt eine meldung mit zugriff auf nicht unterstützter funktion oder so ähnlich
wenn ich stattdessen aber nur ein 'MessageBox(...);' reinpacke anstatt die spalten festzulegen, startet die anwendung wobei erst die messagebox kommt und danach erst das dialog.
ich hoffe ihr versteht was ich meine |