tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1245
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    cappa555 cappa555 ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    11
    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...
     

  2. #2
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    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,

    Pit
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

  3. #3
    cappa555 cappa555 ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    11
    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
     

  4. #4
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    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,

    Pit
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

  5. #5
    cappa555 cappa555 ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    11
    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.
     

  6. #6
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    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,


    Pit
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

  7. #7
    cappa555 cappa555 ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    11
    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?
     

  8. #8
    cappa555 cappa555 ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    11
    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

  1. CFormView Style ändern
    Von GrooveXT im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 18.06.08, 00:44
  2. in CFormView Titelleiste anzeige
    Von titanic im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 23.07.07, 12:34
  3. Anzeigeprobleme beim CFormView
    Von jokey2 im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 08.09.06, 12:01
  4. Einbinden von Dialog in CFormView
    Von Dan McHould im Forum VisualStudio & MFC
    Antworten: 33
    Letzter Beitrag: 20.01.05, 13:24
  5. SetWindowPos in CFormView
    Von Nob im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 24.11.04, 18:36