Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Kein Fenster??? Was ist da denn Falsch? VC++ ( MFC )

Schaub-Johannes / 1 Antworten / Flachansicht Nickles

Hallo!

Ich habe folgendes Problem:
Ich habe ein SDI-Fenster mit Document-Ansicht-Architektur-Unterstützung in VC++ mit der MFC erstellt.

Dann habe ich ein geteiltes Fenster mit hilfe einer CSplitterWnd-Klasse erstellt. Die Linke Seite ist von der Klasse CTreeView und die Rechte Seite von der Klasse CFormView abgeleitet. Dann rief ich vom Hauptrahmenfenster aus die Funktion TestenObEsGeht() in der Rechten Fensterhälfte auf.
Diese Funktion soll einen Button aus dem Formular in der Rechten hälfte mit hilfe der Memberfunktion EnableWindow() deaktivieren.

Also habe ich eine Membervariable mit hilfe des Klassenassistenten hinzugefügt und mit dem Button verbunden.

Als ich EnableWindow(false) für diesen Button aufrufen wollte erhielt ich eine Assertion, der ich nachging:


BOOL CWnd::EnableWindow(BOOL bEnable)
{
ASSERT(::IsWindow(m_hWnd)); // Diese hier ist es

if (m_pCtrlSite == NULL)
return ::EnableWindow(m_hWnd, bEnable);
else
return m_pCtrlSite->EnableWindow(bEnable);
}

Aber das kann doch garnicht sein: Ein Button muss doch deaktiviert werden können, das geht doch auch bei einer Dialogbasierenden Anwendung.

Und übrigens:

Wo ich EnableWindow(false) aus der Funktion OnInitialUpdate() aufgerufen hatte ging es! Ist doch irgendwie merkwürdig

Mman den Button villeicht irgentwie anders einstellen oder wie???

Ich danke schonmal jeden der mir hilft, und sich diesen langen Text durchgelesen hat.

bei Antwort benachrichtigen