Aktualisieren eines DlgItems von Thread aus ( FAQ Lösung funkt leider net )



  • da muss es doch was einfacheres auch geben, ich habs ja mittlerweile so weit dass es ja schon halbwegs funkt nur wenn ich den thread starte braucht es eine Weile bis - was da auch immer passiert - diese Visualisierung funkt.

    Da zu ruf ich folgende Reihenfolge der Befehle auf

    SendMessage(WM_PAINT, 0, 0);
      DoEvents() ;
      GetDlgItem(IDC_OPENGLPROGRESS)->RedrawWindow();
    

    is aber immernoch kacke so,

    Kannst du evtl. deine Lösung posten?



  • // .... im Thread
    
       MeinDialog->strMeineStaticVar = "Hallo Welt";
       MeinDialog->strMeinEditFeld = "Bitte füllen";
       MeinDialog->PostMessage(MYMSG+PARAMS);
    // .... im Thread
    

    MessageHandler im Dialog, nicht Thread.

    CMeinDialg::MYMSG
         {
             UpdateData(FALSE);
         }
    

    das klappt sehr schnell, ich mache das in einem Datei copy thread... der dann grösse geschwindigkeit und andere werte refreshed....

    T1c4L



  • ich glaub ich werd noch wahnsinnig!!! Also es geht immernoch nicht so wie´s soll. Das mit der Message klappt auch net so richtig, da ich ja ohnehin das Zeichnen im OnPaint mach, hätt ich eigentlich keine eigene gebraucht.
    Ich denk mal bei mir hab ich noch die zusätzliche Schwierigkeit, dass ich zeichnen tu und da funkt irgendwas mit dem DC net richtig.
    Bin jetzt allmählich echt am verzweifeln



  • OnPaint, im Dialog oder in einer View?

    bist du doch im Dialog oder? ich habe mal gehört man soll das OnPaint bei dialogen nicht so benutzen... weiss aber nicht warum... kann auch sein das die person selber keine ahnung hatte....

    aber wenn du im dialog bist, dann gibt deinem thread nen zeiger zu deinem dlg mit, mal im thread, post msg im thread an dien Dialog und der soll nen updatedata(false) call so mach ich das und es klappt.

    aber ne coolere lösung fänd ich nicht schlecht...
    man sag thread -> als arbeiter oder eingabe ....

    und was ich das mache ist ja mehr als nur was berechnen im background....



  • also ich bin in einem Dialog und das mit dem Zeiger und Dialog mach ich bereits nur hats bisher überhaupt nix gebracht .... es ist echt total nervig.

    Seltsamerweise funkt die Visualisierung jetzt halb, wenn ich den Thread starte braucht die Visualisierung ne Weile bis das Feld aktualisiert wird in das ich zeichne( ca 1 s ) danach läufts wunderbar, nur warum versteh ich grad im augenblick auch net.

    Der Thread der bei mir läuft ist ein Arbeiterthread, es werden eigentlich nur massig daten ausgegeben



  • ...höher stellen...schon ausprobiert? AboveNormal oder stück höher....

    vieleicht braucht deine Windows/cpu aufteilzeit fuer thread und prozess... zu lange ....



  • nein noch net, muss ich gleich mal testen



  • super grad getestet es geht nu, vielen Dank für die Hilfe ..... ich war ja schon echt am verweifeln 😉



  • konnt dir helfen? fett! ich bin nämlich erst seit knapp nem jahr dabei :p

    juhuuu *level up spürt*[i] 🤡 👍



  • da hast du grad einiges an xp für deinen lächsten levelaufstieg gesammelt *g*


Anmelden zum Antworten