Zeile in RichEdit neu zeichnen



  • Hi Webfritzi,

    hmmm weist du vielleicht wo ich die WndProc beim C++ Builder finde? Die wird wo irgendwo tief in der VCL verankert sein. Anders kann man das nicht machen, oder?

    ➡ Bitte nicht ins C++Builder Forum verschieben, es geht hier um WinAPI...

    thx,
    code_pilot



  • code_pilot schrieb:

    Hi Webfritzi,
    hmmm weist du vielleicht wo ich die WndProc beim C++ Builder finde?

    Schau bitte in die BCB-Forum-FAQs. Da ist ein Artikel mit dem Namen "Windows-Messages mit dem BCB" oder so ähnlich.



  • Juhuuu ich habs jetzt so ziemlich gut hingekriegt.

    Habe jetzt eine WindowProc implementiert die, wenn er highlighted, einige Messages abfängt, und damit das flackern zu 90% veringert.

    void __fastcall TMain::NewWndProc(TMessage& Msg) 
    {
            if(onHighlight)
            {
                    switch(Msg.Msg)
                    {
                            case WM_PAINT:
                            case WM_ERASEBKGND:
                            case WM_NCPAINT:
                            case WM_PRINTCLIENT:
                            case WM_HSCROLL:
                            case WM_COMMAND:
                            case WM_SYSCOMMAND:
                            case WM_SETCURSOR:
                            case WM_SETREDRAW:
                            case WM_CLEAR:
                                    return;
                    }
            }
            OldWndProc(Msg); 
    }
    

    Ausserdem hab ich jetzt noch ein verstecktes Input-Feld hinter dem RichEdit, das den Fokus zugewiesen bekommt wärend er highlighted. Funkt wunderbar!

    Naja uch wenn das mit der einzelnen Zeile highlighten nix geworden ist, vielen dank an euch 🙂 :p


Anmelden zum Antworten