xbpStatic ANSI/OEM Konvertierung verhindern?
Moderator: Moderatoren
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
Danke für die Mühen. Ich werde es mit einem neuen Zeichensatz versuchen.
Gruß Matthias
Gruß Matthias
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
Oder du nutzt GraStringAt() auf der Zeichenfläche des Static.
Ich meine dass hier keine automatische Konvertierung stattfindet, bin mir aber nicht sicher.
Ich meine dass hier keine automatische Konvertierung stattfindet, bin mir aber nicht sicher.
Gruß
Hubert
Hubert
- mikehoffmann
- Rekursionen-Architekt
- Beiträge: 136
- Registriert: Mo, 21. Sep 2015 16:22
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 19 Mal
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
Hallo Matthias,
Ob Du WM_SETTEXT schickst oder SetWindowText aufrufst ist schnuppe, denn SetWindowText sorgt für ein Senden von WM_SETTEXT. Was Jimmy zum Unterschied von Controls und Windows schreibt stimmt nicht. Alle Controls sind auch Windows.
Wirklich spannened ist, was das XbpStatic in :caption stehen hat, wenn Du den Wert über's API gesetzt hast. Findet sich da "ALT" oder "NEU"?
Viele Grüße
Michael
Ob Du WM_SETTEXT schickst oder SetWindowText aufrufst ist schnuppe, denn SetWindowText sorgt für ein Senden von WM_SETTEXT. Was Jimmy zum Unterschied von Controls und Windows schreibt stimmt nicht. Alle Controls sind auch Windows.
Wirklich spannened ist, was das XbpStatic in :caption stehen hat, wenn Du den Wert über's API gesetzt hast. Findet sich da "ALT" oder "NEU"?
Viele Grüße
Michael
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
Da steht immer noch ALT drin. Das Ergebnis von GetWindowText ist NEU. D.h. es passiert intern was ....
Gruß Matthias
Gruß Matthias
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
klar sind alle XbParts Windows aber XbpStatic ist nicht von WC_STATIC wenn man sich das mit WinID oder Spy++ ansieht. deshalb "wirkt" WM_SETTEXT nicht bei XbpStaticmikehoffmann hat geschrieben: ↑Mo, 24. Jul 2017 16:25 Was Jimmy zum Unterschied von Controls und Windows schreibt stimmt nicht. Alle Controls sind auch Windows.
also wenn du das behauptest dann stell doch ein Demo ein um es zu beweisen
gruss by OHR
Jimmy
Jimmy
- mikehoffmann
- Rekursionen-Architekt
- Beiträge: 136
- Registriert: Mo, 21. Sep 2015 16:22
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 19 Mal
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
@Jimmy: Aus der MSDN-Doku: "If the target window is owned by the current process, SetWindowText causes a WM_SETTEXT message to be sent to the specified window or control." Das kannst Du mit dem Rhesus-Doppelpositiven Spion prüfen, indem Du SetWindowText() aufrufst und den Nachrichtenfluss an das Fenster anzapfst. Kommt WM_SETTEXT vorbei, haben die MSDN und ich recht.
@Matthias: Ich habe gehofft, dass das XbpStatic so konstruiert ist, dass es den mutmaßlich ererbten Windows-Textpuffer nutzt, den wir ja erfolgreich mit SetWindowText und GetWindowText gesetzt und gelesen haben und wie das üblich ist. Blöderweise ist dies wohl nicht der Fall. Einen Versuch war es wert.
Viele Grüße
Michael
@Matthias: Ich habe gehofft, dass das XbpStatic so konstruiert ist, dass es den mutmaßlich ererbten Windows-Textpuffer nutzt, den wir ja erfolgreich mit SetWindowText und GetWindowText gesetzt und gelesen haben und wie das üblich ist. Blöderweise ist dies wohl nicht der Fall. Einen Versuch war es wert.
Viele Grüße
Michael
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
das würde ja auch alles für ein XbpStatic zutreffen ... WENN XbpStatic von WC_STATIC wäre
ich ging ja nun auch davon aus und deshalb kam ich auf WM_SETTEXT was bei z.b. XbpSLE (WC_EDIT) funktioniert.
wie du inzwischen wohl auch festgestellt hast kommt man mit SetWindowText() bei XbpStatic nicht weiter, oder
gruss by OHR
Jimmy
Jimmy
- mikehoffmann
- Rekursionen-Architekt
- Beiträge: 136
- Registriert: Mo, 21. Sep 2015 16:22
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 19 Mal
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
--- snip ---
das würde ja auch alles für ein XbpStatic zutreffen ... WENN XbpStatic von WC_STATIC wäre
--- snap ---
Nöh, das gilt für alle Fensterlein, weil DefWindowProc die WM_SETTEXT und WM_GETTEXT Messages behandelt. Siehe MSDN. Und das Ergebnis von Matthias' Tests zeigt ja auch, dass SetWindowText und GetWindowText funktionieren. Blöderweise wird dieser Text nicht angezeigt, weil nördlich des Polarkreises offensichtlich ein eigener Textpuffer eingerichtet wurde. Das ist höchst ungewöhnlich, aber dafür gibt es bestimmt Gründe. Und deswegen funktioniert mein vorgeschlagener Kniff leider nicht.
Das hat aber nichts mit einem Unterschied zwischen Controls und Windows oder dem Unterschied zwischen SetWindowText und SendMessage mit WM_SETTEXT zu tun.
Und selbst wenn XbpStatic von der Betriebssystemklasse WC_STATIC abgeleitet ist, was ich noch für sehr wahrscheinlich halte, kann XbpStatic seinen eigenen Textpuffer implementieren, der bei WM_PAINT angezeigt wird. Wie gesagt, normalerweise tut man das nicht, aber vielleicht gibt es dafür Gründe. z.B. solche, die mit Zeichensätzen zu tun haben.
Wenn es nicht gar zu grauslich aussieht, könnte man ja Edit Controls mit dem Read-Only-Style verwenden, wenn da SetWindowText funktioniert. Ich weiß nur nicht, ob das mit dem XbpSle möglich ist.
das würde ja auch alles für ein XbpStatic zutreffen ... WENN XbpStatic von WC_STATIC wäre
--- snap ---
Nöh, das gilt für alle Fensterlein, weil DefWindowProc die WM_SETTEXT und WM_GETTEXT Messages behandelt. Siehe MSDN. Und das Ergebnis von Matthias' Tests zeigt ja auch, dass SetWindowText und GetWindowText funktionieren. Blöderweise wird dieser Text nicht angezeigt, weil nördlich des Polarkreises offensichtlich ein eigener Textpuffer eingerichtet wurde. Das ist höchst ungewöhnlich, aber dafür gibt es bestimmt Gründe. Und deswegen funktioniert mein vorgeschlagener Kniff leider nicht.
Das hat aber nichts mit einem Unterschied zwischen Controls und Windows oder dem Unterschied zwischen SetWindowText und SendMessage mit WM_SETTEXT zu tun.
Und selbst wenn XbpStatic von der Betriebssystemklasse WC_STATIC abgeleitet ist, was ich noch für sehr wahrscheinlich halte, kann XbpStatic seinen eigenen Textpuffer implementieren, der bei WM_PAINT angezeigt wird. Wie gesagt, normalerweise tut man das nicht, aber vielleicht gibt es dafür Gründe. z.B. solche, die mit Zeichensätzen zu tun haben.
Wenn es nicht gar zu grauslich aussieht, könnte man ja Edit Controls mit dem Read-Only-Style verwenden, wenn da SetWindowText funktioniert. Ich weiß nur nicht, ob das mit dem XbpSle möglich ist.
Re: xbpStatic ANSI/OEM Konvertierung verhindern?
Hallo Zusammen,
danke für Eure Mühe. Der Weg mit einem eigenen passenden Zeichensatz war der einfachste.
Gruß Matthias
danke für Eure Mühe. Der Weg mit einem eigenen passenden Zeichensatz war der einfachste.
Gruß Matthias