ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
1245
1245
EMPFEHLEN
-
servus allerseits,
ich habe eine SDI-Anwendung mit doc/view, neben diesem habe ich ein weiteres CSingleDocTemplate angelegt wobei die View-Klasse von CFormView abgeleitet ist. Darin ist ein Dialog als untergeordnet eingebettet. Jetzt geh ich in meinem Hauptmenü auf den entsprechenden link und das fenster öffnet sich auch. doch weder meine liste, noch meine gesetzten defaultwerte bei checkboxen sind sichtbar. sobald ich beispielsweise noch eine andere schriftart auswählen möchte, schmiert mir die anwendung vollends ab. ich initialisiere die liste (CListCtrl), sowie alles andere, in der CFormView abgeleiteten klasse unter OnInitialUpdate(), unter InitDialog() hat es immer problemlos funktioniert doch hier komme ich einfach nicht weiter.
Vielleicht kann mir ja jemand weiterhelfen woran das noch liegen könnte. OnInitialUpdate() wird ja eigentlich sofort nach OnCreate() aufgerufen was er auch aufruft und macht doch in die OnInitialUpdate() geht er einfach nicht hinein...
-
17.11.08 16:33 #2
Hallo,
gehe nicht davon aus, dass OnIntialUpdate ausschließlich 1 mal aufgerufen wird!!
Zum Beispiel wird OnInitialUpdate für jedes neue Dokument aufgefufen.
Halte dir doch mal eine Membervariable vom Typ BOOL. (z.B. m_bInitialized.)
Setze diese im Konstruktor auf FALSE.
In deiner OnInitialUpdate prüfst du diese und initialisierts alles, was einmalig gemacht werden soll, falls diese Variable FALSE ist.
Setze Sie danach auf TRUE.
Beim nächsten OnInitialUpdate, wird dieser initialisierungs-Block dann übersprungen!
Vielleicht behebt dies ja einen Teil deiner Probleme
Grüße,
PitDer Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
hallo mal wieder

habe alles so gemacht, das problem ist nur das er überhaupt nicht in die OnInitialUpdate() springt. sie wird kein einziges mal aufgerufen
-
17.11.08 23:41 #4
Hi auch mal wieder

also hier werden Sie bestimmt geholfen bei dem Problem
http://www.codeguru.com/cpp/w-d/doc_...cle.php/c6121/
Grüße,
PitDer Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
ich kannte das beispiel bereits und in diesem initialisiert er auch alle werte, allerdings möchte ich die CFormView Klasse in einem neuen fenster öffnen.
etwas wichtiges habe ich vielleicht noch vergessen zu erwähnen: die liste mit ihren defaultwerten wird bereits am anfang beim initialisieren der hauptanwendung gestartet und sofort auf HIDE gesetzt, das programm kann jederzeit aufgerufen werden und wird bei OnClose() nur versteckt und eben nicht beendet, die liste orientiert sich an einer audiospur über die aktuelle position des cursors. von daher muss ich es so machen.
-
19.11.08 00:02 #6
Hi,
du willst eine CFormView in einem neuen Fenster öffnen ?
Warum, wieso, weshalb ?
Mach doch einfach eine von CDialog abgeleitete Klasse, starte diese modal, oder von mir aus auch nich modal... aber warum CFormView
Hilf mir, damit ich dir helfen kann
..
Grüße,
PitDer Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
hi,
also ich wollte ein weiteres CSingleDocTemplate erstellen, da mein dialog einen eigenen IDR_MAINFRAME hatte und ein Template CView erwartet oder eine davon abgeleitete klasse.
habe es jedoch jetzt mit einem nichtmodalen dialog gelöst. er zeigt mir den dialog jetzt zwar an, allerdings im parentwindow, also meiner hauptanwendung, zudem kann ich keine buttons etc anklicken, die defaultwerte werden dafür richtig gesetzt in der initdialog(). habe hier mal den code wo der link zum dialog führt und das fenster erstellt werden müsste:
Code :1 2 3 4 5 6 7 8 9
void CTestView::OnScriptEditor() { if(m_pNonModalDlg == NULL) { m_pNonModalDlg = new CAudioScriptView(this); m_pNonModalDlg->Create(CAudioScriptView::IDD); m_pNonModalDlg->ShowWindow(SW_NORMAL); } }
m_pNonModalDlg ist hierbei vom Typ CAudioScriptView*
die Member-Variable wird im Konstruktor auf NULL gesetzt und im Dekonstruktor wieder gelöscht.
Aber warum erstellt er mir hier kein neues Fenster?
-
Topic ----------->>>>CLOSED<<<<---------------
das thema hat sich erledigt, aus unerklärlichen gründen wurden meine änderungen im dialog nicht in die ressource datei übernommen, somit stand weiter CHILD anstatt MODALFRAME drin!
dennoch danke für die hilfe pit
Ähnliche Themen
-
CFormView Style ändern
Von GrooveXT im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 18.06.08, 00:44 -
in CFormView Titelleiste anzeige
Von titanic im Forum VisualStudio & MFCAntworten: 4Letzter Beitrag: 23.07.07, 12:34 -
Anzeigeprobleme beim CFormView
Von jokey2 im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 08.09.06, 12:01 -
Einbinden von Dialog in CFormView
Von Dan McHould im Forum VisualStudio & MFCAntworten: 33Letzter Beitrag: 20.01.05, 13:24 -
SetWindowPos in CFormView
Von Nob im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 24.11.04, 18:36





Zitieren
Login






