перевод строки
От: klmn  
Дата: 25.08.05 06:36
Оценка:
Есть окно произвольного размера, на которое выводится TextOut-ом какой-то текст. Надо вывести очередное слово (char word[]). Как проверить, поместится ли это слово в рабочую область окна на этой строке или надо переходить на новую строку???
Как я понимаю, надо:
1. определить текущее положение каретки в окне
2. определить длину слова функцией GetTextExtentPoint32
3. проверить влезет ли это слово в конец строки…
Подскажите, как сделать пункт №1? И что из чего вычитать в пункте №3?

P.S. Все на чистом WIN API

спсибо.
Re: перевод строки
От: rus blood Россия  
Дата: 25.08.05 06:41
Оценка:
Здравствуйте, klmn, Вы писали:

K>P.S. Все на чистом WIN API


А почему не использовать DrawText с параметром DT_WORDBREAK ?
Имею скафандр — готов путешествовать!
Re[2]: перевод строки
От: klmn  
Дата: 25.08.05 07:44
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Здравствуйте, klmn, Вы писали:


K>>P.S. Все на чистом WIN API


RB>А почему не использовать DrawText с параметром DT_WORDBREAK ?


Как именно её припменить в моём случае?
Re: перевод строки
От: Аноним  
Дата: 25.08.05 08:19
Оценка:
Здравствуйте, klmn, Вы писали:

K>Есть окно произвольного размера, на которое выводится TextOut-ом какой-то текст. Надо вывести очередное слово (char word[]). Как проверить, поместится ли это слово в рабочую область окна на этой строке или надо переходить на новую строку???

K>Как я понимаю, надо:
K>1. определить текущее положение каретки в окне
K>2. определить длину слова функцией GetTextExtentPoint32
K>3. проверить влезет ли это слово в конец строки…
K>Подскажите, как сделать пункт №1? И что из чего вычитать в пункте №3?

K>P.S. Все на чистом WIN API


K>спсибо.


а не проще хранить где-нить все инфу для окна
и использовать DrawText,
у него есть рект в параметрах и он
сам перенесет слова
Re[3]: перевод строки
От: Аноним  
Дата: 25.08.05 08:23
Оценка:
Здравствуйте, klmn, Вы писали:

K>Здравствуйте, rus blood, Вы писали:


RB>>Здравствуйте, klmn, Вы писали:


K>>>P.S. Все на чистом WIN API


RB>>А почему не использовать DrawText с параметром DT_WORDBREAK ?


K>Как именно её припменить в моём случае?


int DrawText(
HDC hDC, // handle to DC
LPCTSTR lpString, // text to draw — тут вся строка
int nCount, // text length — ее размер
LPRECT lpRect, // formatting dimensions — клиент-рект окна
UINT uFormat // text-drawing options — DT_LEFT | DT_WORDBREAK
);
Re: перевод строки
От: OLEGus1 Россия  
Дата: 25.08.05 10:11
Оценка:
Здравствуйте, klmn, Вы писали:

K>1. определить текущее положение каретки в окне

Функция GetCaretPos копирует позицию каретки, в рабочих координатах, в определяемой структуре POINT. 

Синтаксис 

 
BOOL GetCaretPos
(
    LPPOINT lpPoint // адрес структуры, которая принимает координаты
);

Параметры
lpPoint
Указывает на структуру POINT, которая принимает рабочие координаты каретки. 

Возвращаемые значения 
Если функция завершается успешно, возвращаемое значение отлично от нуля. Если функция потерпит неудачу, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибках, вызовите GetLastError. 

Замечания
Позиция каретки всегда дана в рабочих координатах окна, которое содержит каретку.


K>2. определить длину слова функцией GetTextExtentPoint32

K>3. проверить влезет ли это слово в конец строки…
K>Подскажите, как сделать пункт №1? И что из чего вычитать в пункте №3?

K>P.S. Все на чистом WIN API


K>спсибо.
Crescite, nos qui vivimus, multiplicamini
Re[2]: перевод строки
От: OLEGus1 Россия  
Дата: 25.08.05 10:12
Оценка:
Здравствуйте, OLEGus1, Вы писали:

только каретка тут ни при делах то
Crescite, nos qui vivimus, multiplicamini
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.