Veröffentlicht 17. April 201411 j Hallo an alle, ich habe eine StatusBar in meinem Dialogfeld, wo ich vor dem eigentlichen Start der Aufgabe Initialisierungsmeldungen anzeigen lasse. Wenn ich den WorkerThread starte und jetzt Meldungen anzeigen lassen will, kommt eine Fehlermeldung die sinngemäß besagt, dass das StatusBar-Fenster nicht mehr verwendet wird bzw. nicht bekannt ist. In der zugehörigen wincore.cpp steht der Haltepunkt bei: ASSERT( (p = pMap->LookupPermanent(m_hWnd)) != NULL || (p = pMap->LookupTemporary(m_hWnd)) != NULL); p ist NULL Wie bekomme ich die StatusBar wieder unter Kontrolle?
17. April 201411 j Du darfst auf Fenster und Steuerelemente nur aus dem Thread zugreifen, in dem sie erstellt wurden.
28. April 201411 j Autor Mit den ListControls kann ich aber doch arbeiten. Ich habe allerdings die StatusBar nicht als Dialogelement eingebunden, sondern nur mit CStatusBar::Create. Fehlt dazu vielleicht das DDX-Control für den Datenaustausch?
28. April 201411 j Mit den ListControls kann ich aber doch arbeiten.Dann hast du Glück gehabt. Viele MFC-Methoden sind nur Wrapper um SendMessage-Aufrufe, das mag dann gutgehen. Es bleibt dabei: Zugriff auf Steuerelemente nur aus dem erstellenden Thread.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.