Text markieren



  • Ich hab mit der Funktion TextOut() Text in ein Fenster gezeichnet. Ich will diesen Text jetzt markieren können ( so wie in einem EDIT-Control ).
    Gibts dafür eine Funktion mit der das geht, oder wenigstens eine mit der ich
    z.b. das gezeichnete in einer Bildschirmregion invertieren kann ( das hätte ja einen ähnlichen effekt zur folge )?

    Danke schon mal für eure Hilfe.



  • Invertieren kannst du mit InvertRect:

    BOOL InvertRect(HDC hDC, CONST RECT *lprc);
    

    An den Text kommst du aber imho nich mehr ran, das sind ja nur noch Pixel (und kein Text mehr) - du bräuchtest also eine Texterkennung (OCR)!

    [ Dieser Beitrag wurde am 10.11.2002 um 19:12 Uhr von flenders editiert. ]



  • Hallo!

    Ich bin durch Zufall in der MSDN (PSDK) auf eine Seite gestoßen, die genau dieses Problem behandelt: nämlich das Selektieren von gezeichnetem Text. Bin mir sicher, dass es den einen oder anderen interessiert, oder dass sich vielleicht in der Zukunft jemand dafür interessieren wird.

    Link:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/mouseinput/usingmouseinput.asp



  • Danke für den Link. Sowas hab ich gesucht. Doch leider kann man das nicht kompilieren. Ein paar Variablen sind nicht deklariert.



  • Hm ich hab noch nicht versucht den Code zu kompilieren. Habe momentant etwas wichtigeres zu tun.

    Welche Variablen sind denn nicht vorhanden? Gib mal die Fehlermeldung deines Compilers...



  • Der Quellcode ist einfach Müll.

    dwMaxCharX
    BUFSIZE

    falscher Kommentar:

    default:    / displayable character
    

    Als ich dann für beide Variablen 1000 eingesetzt hab und noch es dann irgendwie geschafft hatte den Code zu kompilieren, kam beim Doppelklick auf den Text die Fehlermeldung das pcch nicht initialisiert ist.



  • Na ja, werde sowieso das ganze selbst versuchen. Diesem Quelltext vertraue ich nicht. Wollte ein eigenen kleinen Edit-Control schreiben.



  • 😞 schrieb:

    Na ja, werde sowieso das ganze selbst versuchen. Diesem Quelltext vertraue ich nicht. Wollte ein eigenen kleinen Edit-Control schreiben.

    Vielleicht möchtest du dir das Projekt "Brainchild" ansehen; es ist ein Edit-Control in einer DLL (programmiert in C) und es gibt eine Applikation, die diese verwendet:

    http://www.codeproject.com/editctrl/brainchild.asp

    Hinweis: Du musst registriertes Mitglied auf dieser Seite sein, um Dateien runterladen zu können.

    PS.: Ich hab mir das Projekt selber ein bisschen angesehen und es ist ziemlich schwierig da durchzublicken, zumal es in C geschrieben ist...C-Code ist ansich leicht zu verstehen, aber bei Win-32 Anwendungen wird es doch irgendwie mühsam, denn C++-Klassen machen vieles einfacher. Vorallem wenn man mittels "Thunks" eine reine Memberfunktion als Callback-Funktion fungieren lassen kann...


Anmelden zum Antworten