Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  MegaCAD
  Text austauschen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
MegaCAD Metall 3D - Die wichtigsten Funktionen im Überblick
Autor(20117) Thema:  Text austauschen (444 mal gelesen)
pille
Mitglied


Sehen Sie sich das Profil von pille an!   Senden Sie eine Private Message an pille  Schreiben Sie einen Gästebucheintrag für pille

Beiträge: 2
Registriert: 23.05.2001

erstellt am: 23. Mai. 2001 22:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich will bei einem t_text den String austauschen. Der Quellstring ist vom Typ CString. Wenn ich nun diesen String mit
wsprintf(ent->data.txt.str,"%hs\0",strSource);
in den Buffer des t_text kopiere, dann bleiben die Umlaute erhalten. Wenn ich aber ExchangeEntity aufrufe, um die Änderung MC mitzuteilen, dann gehen die Umlaute in MC verloren. Wie kann ich dies verhindern?
Vielen Dank für Eure Hilfe
Gruss
Philipp

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Knoop
Mitglied
Dipl.-Ing. masch.


Sehen Sie sich das Profil von Knoop an!   Senden Sie eine Private Message an Knoop  Schreiben Sie einen Gästebucheintrag für Knoop

Beiträge: 409
Registriert: 09.10.2000

erstellt am: 28. Mai. 2001 15:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für pille 10 Unities + Antwort hilfreich

Hallo,

ohne den näheren Sourcecode zu kennen, kann ich den Tip geben, das auch die in MegaCAD eingestellte Schriftart eine Rolle spielt. CString ist ja erstmal ein ANSI - Text! Wenn ein tfont aktiv ist, dann muß zuvor eine Konvertierung durchgeführt werden. Man muß also die eingestellte Schriftart zuvor ermitteln!

mfg
Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pille
Mitglied


Sehen Sie sich das Profil von pille an!   Senden Sie eine Private Message an pille  Schreiben Sie einen Gästebucheintrag für pille

Beiträge: 2
Registriert: 23.05.2001

erstellt am: 29. Mai. 2001 20:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Herr Knoop,
In meiner DLL passiert folgendes:
CString strData;
strData.Format("%s",edta); //eine Zeile aus dem DB-Info einlesen
...
wsprintf(txt.str,"%hs",strData);
ExchangeEntity(txt...);
Worauf muss ich achten, wenn ich den eingestellte Schriftart einlese und in was muss ich meinen gegebenen String konvertieren?
Gruss
Philipp

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Knoop
Mitglied
Dipl.-Ing. masch.


Sehen Sie sich das Profil von Knoop an!   Senden Sie eine Private Message an Knoop  Schreiben Sie einen Gästebucheintrag für Knoop

Beiträge: 409
Registriert: 09.10.2000

erstellt am: 31. Mai. 2001 13:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für pille 10 Unities + Antwort hilfreich

Hallo,

ich würde wie folgt vorgehen:

1.
mit GetTextVal(E_TXTLIN,TRUE,&txtdata);; den Schrifttyp ermitteln, wenn man einen Text neuerzeugt, ansonsten hat man ja das Element.

2.
prüfen, ob CharSet ANSI oder OEM ist (siehe Megatyp.h)

3.
Wenn OEM, dann ist eine AnsiToOem Konvertierung notwendig, wenn Ihr Ausgangstext ANSI ist.
Wenn Ansi, dann ist eine OemToAnsi Konvertierung notwendig, wenn Ihr Ausgangstext OEM ist.

Diese Konvertierungen sind ja auch mit der Klasse CString möglich.

4.
mit GetTextVal(E_TXTLIN,0,&txtdata) das umgebende Rechteck neuberechnen

5.
Element austauschen

Tja, so sollte das eigentlich vom Prinzip her funzen...
Also,man muß immer den richtigen CharakterSet (CharSet) zur Anwendung bringen. Die Umlautcodierung im String muß dem verwendeten CharSet entsprechen. Im Zweifelsfall würde ich sprintf verwenden, das klappt eigentlich immer.


mfg
Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz