CStart start; start.DoModal(); start.status(); //diese funktion wird erst aufgerufen wenn dein dialog modal aufgerufener Dialog fertisch ist... bei deinem problem beisst sich irgendwie die katze in den schwanz:D musst dann halt start.status nach dem start von "start" aufrufen... was dir wieder das geliche problem einbringt das wenn du es in onInitDialog von CStart machst, das das wieder nicth angezeigt wird meines erachten kommst du nich drum rum das irgendwie mit nem trick in onpaint zu machen oder du lässt nen extrathread starten der da rummalt... ne gute lösung für diese problem hab ich auch noch nicht gefunden wenn da einer was hat bitte mal ein beispiel posten
hi, die lösung iss relativ simple, einfach beim starten des hauptdialoges einen timer setzen, in ontimer wird dann die progressbar "bedient" ist diese auf 100% werden dann die ganzen controls freigegeben, fertig. -- grusz
@toxic hmm aber ein timer garnatiert dir nicht das der dialog wirklich schon gemalt ist, wenn der anfängt die funktion aufzurufen oder. (ok man kann ihn entsprechend lang wählen) -- ...fleißig wie zwei Weißbrote
Das heißt, man müsste nen Timer wählen, der so lange bzw. länger als das Erstellen des Dialoges ist und dann soller erst mit der Ausführung der Funktion beginnen? naja, Problem: Man müsste den Timer und das Malen des Dialoges gleichzeitig laufen lassen :/
@toxic hmm aber ein timer garnatiert dir nicht das der dialog wirklich schon gemalt ist, wenn der anfängt die funktion aufzurufen oder. (ok man kann ihn entsprechend lang wählen)
Ich hab jetzt nicht alles gelesen aber wenn es darum geht sicherzustellen das der Dialog "fertig" initialisiert ist bevor man ihn manipuliert,ist WaitForInputIdle das Mittel zum Zweck.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
NenThread reicht auch,der muss dann natürlich vor DoModal aufgerufen werden. In der Thread Funktion wartest du dann per WaitForInputIdle bis der Dialog bereit ist und dann geht es los . Aber vorsicht! Du kannst den Dialog aus dem sekundären Thread heraus nicht direkt manipulieren!! Über benutzerdefinierte Nachrichten gehts ganz gut....
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
@Spacelord in der MSDN steht aber der will nen Handle auf nen Process haben sicher das der auch nen thread frisst?
C++:
DWORD WaitForInputIdle( HANDLE hProcess, // handle to process DWORD dwMilliseconds // time-out interval in milliseconds );
Zitat:
NenThread reicht auch,der muss dann natürlich vor DoModal aufgerufen werden
was spricht dagegen den thread erst in OnInitDialog von dem modal aufgerufenen dialog zu starten? -- ...fleißig wie zwei WeißbroteDieser Post wurde am 03.07.2004 um 14:08 Uhr von Windalf editiert.