[VC++] Jak wyswietlic tekst :D? (zawijaj wiersze)!

0

Witam, pisze program ktory na powierchnie ekranu wyrzuca rozne stringi, czasami duzo dluzsze niz dlugosc ekranu/okna.

Jak wyswietlac tekst tak aby w momencie dojscia do konca ekranu/krawedzi okna zaczal pisac o linijke nizej? TextOut wkleja tekst ale w jednej linii, ja musze miec caly tekst widzoczny w jakims tam szescianie na ekranie...

W notatniku to sie nazywa "zawijanie wierszy" :D...

Liczenie literek raczej odpada bo rozne czcionki maja rozne szerokosci liter i to sie mija z celem...

Druga sprawa, mniej wazna, jesli juz bedzie sposob na powyzszy problem, czy da sie jakos zrobic justowanie takiego tekstu?

0

http://lcs.net.pl/jagi/Justify2.zip <- to jest przykladowy program z knigi "Programowanie Windows"... jak go przeanalizujesz to wszystko stanie sie jasne :>
A jesli chodzi o zawiajnie tekstu to najlatwiej jest zrobic sobie kontrolke EDIT, w ktorej bedzie umieszczony tekst, procedura kontrolki wszystkie operacje wykona za ciebie

hwndEdit = CreateWindow (TEXT ("edit"), NULL,
                         WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL,
                         0, 0, 0, 0, hwnd, (HMENU) ID, hInstance, NULL) ;

Aha no i do styli nalezaloby takze dodac styl WS_READONLY (chyba tak to sie nazywalo) blokujacy mozliwosc wpisywania tekstu przez uzytkownika

0

Zamiast

TextOut

użyj DrawText.

Liczenie literek raczej odpada bo rozne czcionki maja rozne szerokosci liter i to sie mija z celem...

A słyszał o GetTextExtentPoint32??? ;)

0

:] Wszystko czego potrzebowalem :]

GetTextExtentPoint32 + DrawText + justowanie z tego przykladowego kodu :].

Dzieki ponownie [diabel]

1 użytkowników online, w tym zalogowanych: 0, gości: 1