Message и длина строки

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Message и длина строки

Post by ctapmex »

Для вывода ошибок использую Message.
на сколько я понимаю, при отображении идет поиск оптимальной ширины окна - если текст не длинный то по длине текста, если длинный - по ширине окна, обрезая часть текста.
Вопрос - как определить размер окна, чтобы длинные строки-ошибки разбить на несколько строк?
пока что я вижу вариант такой - определять что активно (панели, текстовый редактор), и вызывать соответственно его функцию, типа EditorInfo. И уже тут определять ширину окна. Но это наверное не совсем удобно, и много действий .
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Message и длина строки

Post by Max Rusov »

GetConsoleScreenBufferInfo
User avatar
[e]Bu$ter
Posts: 792
Joined: Mon 30 May, 2005 23:05
Location: Беларусь, Минск
Contact:

Re: Message и длина строки

Post by [e]Bu$ter »

А можно ещё через
Info.Control(INVALID_HANDLE_VALUE, FCTL_GETPANELINFO, &PInfo),
а потом из PInfo.PanelRect.Left и PInfo.PanelRect.Right подсчитать то что нужно.
Но это наверное тоже извращение.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: Message и длина строки

Post by ctapmex »

Max Rusov wrote:GetConsoleScreenBufferInfo

Code: Select all

BOOL WINAPI GetConsoleScreenBufferInfo(
  __in   HANDLE hConsoleOutput,
  __out  PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
);

тут hConsoleOutput это AdvControl(ACTL_GETFARHWND) ?
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Message и длина строки

Post by t-rex »

Нет, это GetStdHandle(чёто там OUTPUT)
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: Message и длина строки

Post by ctapmex »

спасибо. буду пробовать
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Message и длина строки

Post by DrKnS »

Вопрос - как определить размер окна, чтобы длинные строки-ошибки разбить на несколько строк?
Проще забить.
Фар в Message длинные строки уже давно не режет, там прокрутка влево-вправо работает.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: Message и длина строки

Post by ctapmex »

точно, как то не догадался курсором ткнуть туда.
User avatar
[e]Bu$ter
Posts: 792
Joined: Mon 30 May, 2005 23:05
Location: Беларусь, Минск
Contact:

Re: Message и длина строки

Post by [e]Bu$ter »

sonar wrote:точно, как то не догадался курсором ткнуть туда.
Так вообще мало кто догадается. Тем более что и Tab фокус туда не помещает.
Может индикацию какую-нибудь сделать? Чтоб как во всех прокручиваемых местах было. Ведь не интуитивно совсем, а фишка полезная.
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Re: Message и длина строки

Post by Raistlin »

Другим цветом хорошо бы выделять, если движок позволяет. Или хотя бы сделать, как сделано в панелях с длинными именами файлов, не умещающимися в колонку: упираться в рамку и менять её на { и }. И чтобы прокрутка работала по Alt-arrows при нахождении курсора на кнопках (что не исключает доступа непосредственно в поле имени файла).
Magically yours
Raistlin
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: Message и длина строки

Post by ctapmex »

я в итоге написал функцию по разбивке текста по ширине экрана для colorer. Строки бьются по пробелам. Единственный возможный минус в этом подходе - если дана длинная строка , например путь к файлу, то он его разобьет не по пробелу.
Но главное сразу видно всю ошибку
Post Reply

Return to “Разработка плагинов”