"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

c++ edit box

geforceraid 20.02.2005 - 12:50 632 7
Posts

geforceraid

Big d00d
Avatar
Registered: Mar 2003
Location: Uhrwerk
Posts: 299
ich schreibe gerade an einem programm, welches binären code in ASCII zeichen umwandelt.
Im Textmodus funktioniert alles schon ganz gut, jetzt will ich eine grafische Oberfläche auf Basis der WinAPI erstellen.

Leidergottes nimmt die EditBox keine '\n' Steuerzeichen an (es erscheinen nur schwarze Kästchen) wenn ich die SetWindowText(HWND, LPCSTR) Funktion verwende.

Erstellt habe ich das ChildWindow Control mit den Parametern
WS_CHILD |WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_LEFT

Ich hoffe, es gibt eine andere Lösung für das Problem, als jede Zeile einzeln in einem Array speichern zu müssen.

tia

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Mach mal \r\n.

geforceraid

Big d00d
Avatar
Registered: Mar 2003
Location: Uhrwerk
Posts: 299
Zitat von Ringding
Mach mal \r\n.

jetzt funzts :)

0100010001100001011011100110101101100101001000000011101000101001

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
btw, das war eine reine Win32 Frage und hat mit C++ nur am Rande zu tun.

geforceraid

Big d00d
Avatar
Registered: Mar 2003
Location: Uhrwerk
Posts: 299
was ich noch fragen wollte:
wie kann man die Edit-Box dazu überreden unicode zu akzeptieren und darzustellen?

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Du compilierst dein Programm mit #define UNICODE statt MBCS (steht üblicherweise in den Compileroptionen). Ab dann sind alle Strings, die dein Programm mit Windows austauscht, solche aus 16 Bit breiten Zeichen (TCHAR ändert seine Definition dadurch von char auf wchar_t).

geforceraid

Big d00d
Avatar
Registered: Mar 2003
Location: Uhrwerk
Posts: 299
mit dem UNICODE Identifier funzt eigentlich alles schon ganz gut.
Das Problem ist jetzt, dass anscheinend die Font, die für die Windows-Editbox verwendet wird, nicht alle Zeichen ausgeben kann.
Wenn ich zb. das Euro Zeichen eingebe, wandelt er mir das korrekt in 0010000010101100 um, allerdings erscheint nur ein schwarzes Kästchen im Eingabefeld.

Anbei das Beispielprogramm (in .zip umbenennen).click here
Bearbeitet von geforceraid am 27.02.2005, 11:54

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Dann musst du wohl Arial verwenden (WM_SETFONT). Standardmäßig wird glaub ich MS Sans Serif verwendet, das es anscheinend nicht kann.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz