![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Чето я совсем, того это....
Как отскролировать текст в окне RichEdit так, чтоб последняя строка была внизу? Пыталься посчитать параметр для CRichEditCtrl::LineScroll( int nLines, int nChars = 0 ); Пробовал посчитать высоту строки через GetTextExtent его контекста и сравнить с инфой GetClientInfo не то, причем явно не туда скролирует при любом количестве строк. Другой способ: при нажатии кнопок Ctrl+End он перемещает инфу как раз как мне нужно. Пытался послать мессагу CRichEditCtrl::SendMessage WM_CHAR и WM_KEYDOWN, в мсдн глянул скан-код этой комбинации вроде 117. Сколько не шли сообщения эффекта не наблюдается. Тоже самое если сделать PostMessage( ). Не дайте сойти с ума....... Это сообщение отредактировал(а) DENNN - 22.4.2003, 12:38 |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
LineScroll должно работать, только параметр нужно расчитывать относительно количества строк помещающихся на екране
врядли ты правильно определил скан код, ВОСПОЛЬЗУЙСЯ SPY++ и посмотри что дейтвительно отсылается при нажатии комбинации, помоему там два мессейджа идет подряд -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Попробуй. У меня не получилось. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
у меня сейчас стоит нет, я вообще почемуто не могу с этим элементом прогу запустить, окно не создается.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
AfxInitRichEdit( ); в InitInstance обычно вызывают. Может в нет тоже поможет.
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
я попробывал у меня лайнскрол работает параметр который надо передать - количество строк - количество помещающихся на екране при этом курсор должен стоять на первой строке
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
у меня просто перемещает курсор но не сдвигает список -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
После этого последняя строка будет отображена ВВЕРХУ. А мне нужно, чтоб она была внизу окна. Потому и сижу соображаю. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
неа ты что-то путаеш
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Как ты посчитал количество помещающихся на экране?
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
а это ты раз запусти и посмотри, можно взять высоту строки и высоту элемента
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Step Ты мое первое сообщение читал?
Приведи код, если у тебя получилось. Пожалуйста. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
у меня работает -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Ага, у меня одно количество строк влезет, а с другими шрифтами по умолчанию число будет другое. Как грамотно посчитать количество помещающихся строк в контроле? Вот в чем вопрос.. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
размер ты задаеш через СФонт, там есть ГЕТЛОГФОНТ, возвращает структуру в которой есть ВЫСОТА, береш ее и на нее делиш высоту контрола
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Вроде и я начинаю соображать. С твоей помощью Step
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
я б тебе полный код дал да только у меня машина с визуалом в другом кабинете и от сети отсоедина, дискетами не пользуемся а по памяти писать в лом
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Ты как стоматолог объясни простую вещь:
CRichEditCtrl на вызов GetFont() возвращает NULL. И птицу обломинго. А практические (читай настоящие) знания я так же как ты получал Только через голову |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
а ты не вызывай из сричедитконтр, ты в класе диалога вызывай эту функцию, и получиш то что нужно, а в ричедит ты еще фонта не создовал он там унаследовался от диалога поэтому и нул
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
СFont * f=GetFont(); у меня возращает не нул
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
если захочеш изменять фонт не забывай выбирать объект, после выбора фонта, Гетфонт возвращает выбраный объект на сколько я понимаю
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Высота окна в пикселах 91, а m_logs.GetDC()->GetDeviceCaps(LOGPIXELSY) дает 96 Я же говорю, что сегодня не соображаю. Чему равна высота символа в пикселах? |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
зачем ты умнажает у меня высота сивола получается -11, делишь высоту элемента на модуль высоты символа зачем ты сюда еще уножения на количество пикселей на дюйм делаеш - это нужно использовать только при эргономики
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
У меня тоже, только в мсдн написано, что GetDeviceCaps(LOGPIXELSY) возвращает кол-во пикселов по-высоте на один логический инч, а fnt.lfHeight указывает высоту шрифта в логических единицах. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
врядли в логических
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
CFont * g=GetFont();
LOGFONT y; g->GetLogFont(&y); int a=m_qw.GetLineCount(); CRect p; m_qw.GetRect(&p); a=(int)((p.bottom-p.top)/(-MulDiv(y.lfHeight,GetDeviceCaps(m_qw.GetDC()->m_hDC, LOGPIXELSY), 72))); в а получаеш количество строк в элементе управления, получаеш только количесво полных строк т.е. последняя если отображается не полностью то не считается -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Спасибо Step.
-MulDiv(fnt.lfHeight,m_logs.GetDC()->GetDeviceCaps(LOGPIXELSY),72) - все получилось! |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
DENNN там в мсдне была маленькая дописочка по этому поводу
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |