Как удлинить бегунок полосы прокрутки?
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Как удлинить бегунок полосы прокрутки?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Ширина бегунка зависит от диапазона, который задан для контрола scrollbar. Чем больше диапазон, тем меньше бегунок. Диапазон задаётся с помощью функции SetScrollRange, но этот способ хорош только в том случае, если ты полностью самостоятельно обрабатываешь все сообщения от скролбара. Если же скролбар у тебя какого-нибудь RichEdit'а, то изменив диапазон ты полностью поломаешь его работу, так как RichEdit выставляет диапазон, полагаясь на собственные расчёты о количестве строк/символов в строке в тексте. Так что в случае готового контрола могу лишь посоветовать сабклассинг, да и то лишь в том случае, если скролбар у этого контрола отдельный, а не отрисованный муляж (если он был через стиль окна указан).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Если бы. В том то и дело, что длина одна при диапазоне от 0 до 1 и от 0 до >600, а не как в билдере.
А что, можно ещё не самостоятельно? Не смешно.но этот способ хорош только в том случае, если ты полностью самостоятельно обрабатываешь все сообщения от скролбара.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Покажи, как создаёшь скролбар. Может что-то неправильно делаешь.Сионист писал(а):Если бы. В том то и дело, что длина одна при диапазоне от 0 до 1 и от 0 до >600, а не как в билдере.
Ты мог разместить на форме какой-нибудь RichEdit. У этого контрола есть свой скролбар и он сам управляет им.Сионист писал(а):А что, можно ещё не самостоятельно? Не смешно.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Кто то критиковал моё умение гуглить, а сам не может даже прочитать то, что уже написано в теме:на форме
.а не как в билдере
Покажи, как создаёшь скролбар.
Код: Выделить всё
SetScrollRange(Window, SB_HORZ, 0, MaxPosition, TRUE);
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Вот этого наезда я вообще не понял. Что тебя именно смущает в моих словах? Слово "форма" или что? К чему на этот раз ты прицепился и решил съязвить? Вот всегда так... пытаешься помочь человеку, а он не с того ни с всего начинает желчью истекать.Сионист писал(а):Кто то критиковал моё умение гуглить, а сам не может даже прочитать то, что уже написано в теме
А если вызвать GetScrollInfo, то в какую величину выставлена nPage в структуре? Случайно не ноль? Причём желательно эту функцию вызывать уже после инициализации диалога (или создания окна, если это не диалог).Сионист писал(а):Код: Выделить всё
SetScrollRange(Window, SB_HORZ, 0, MaxPosition, TRUE);
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ну еслиВот этого наезда я вообще не понял. Что тебя именно смущает в моих словах? Слово "форма" или что?
, значит и не на билдере. А Вы после этого поминаете билдеровские формы и валяющиеся на них ричэдиты. Кстати, кто то в соседней теме пугал меня сложностью самостоятельного регулирования размеров скрола, но формы берут его на себя, а вот чтоб добраться до хендла VCL-ловых форточек, чтоб создать скролл как часть другой форточки, надо очень постараться.не как на билдере
Как её вообще юзать?А если вызвать GetScrollInfo, то в какую величину выставлена nPage в структуре?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Господин Сионист, я вообще никогда не писал на билдере. Термин "форма" я использовал исключительно как обобщающее название для всех окон, на которых можно размещать контролы. А RichEdit, да будет вам известно, является частью стандартных контролов Windows, а не билдеровской библиотеки VCL. Надеюсь, теперь вам понятно, моё недоумение, а также последующий ироничный тон в ответ на ваше эмоциональное фонтанирование, вызванное недостатком вашего образования?Сионист писал(а): А Вы после этого поминаете билдеровские формы и валяющиеся на них ричэдиты.
Господи, ну ведь на MSDN в статье об этой функции даже пример есть... Неужели сложно вбить в гугл?Сионист писал(а):Как её вообще юзать??
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Это который (!GetScrollInfo(hwnd, SB_HORZ, &si) )?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Так точно, он самый.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.