Управление полосой прокрутки
Управление полосой прокрутки
При отображении большого текста пользователь может применять полосу прокрутки для перемещения по тексту. Разработчик может использовать сообщение WM_VScroll для программного управления полосой прокрутки. Например, можно использовать этот механизм для создания эффекта автоматической прокрутки текста.
Для иллюстрации примера нужно расположить на форме текстовое поле и отобразить в нем какой-нибудь длинный текст. В примере используется отрывок из произведения А. Пушкина «Дубровский». Также на форме надо расположить четыре кнопки, при помощи которых пользователь сможет управлять отображением текста, прокручивая его на одну строчку или страницу вниз и вверх. В листинге 4.2 приведен код, который реализует описанный способ отображения текста.
Листинг 4.2
[DllImport("coredll.dll")]
extern static int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
/// <summary>
/// Сообщение Windows для работы с полосой прокрутки
/// </summary>
const int WM_VSCROLL = 0x115;
// константы для сообщения WM_VSCROLL
const int SB_LINEUP = 0:
const int SB_LINEDOWN = 1;
const int SB_PAGEUP = 2;
const int SB_PAGEDOWN = 3;
private void Form1_Load(object sender, EventArgs e) {
// Отрывок из повести А.С.Пушкина "Дубровский"
txtBook.Text = @"Несколько лет тому назад в одном из своих
поместий жил старинный русский барин, Кирила Петрович Троекуров.
Его богатство, знатный род и связи давали ему большой вес в губерниях,
где находилось его имение. Соседи рады были угождать малейшим его
прихотям; губернские чиновники трепетали при его имени; Кирила
Петрович принимал знаки подобострастия как надлежащую дань; дом его
всегда был полон гостями, готовыми тешить его барскую праздность,
разделяя шумные, а иногда и буйные его увеселения.";
}
private void butUp_Click(object sender, EventArgs e) {
// на одну строчку вверх
SendMessage(txtBook.Handle, WM_VSCROLL, SB_LINEUP, 0);
}
private void butDown_Click(object sender, EventArgs e) {
// на одну строчку вниз
SendMessage(txtBook.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
}
private void butPageUp_Click(object sender, EventArgs e) {
// на одну страницу вверх
SendMessage(txtBook.Handle, WM_VSCROLL, SB_PAGEUP, 0);
}
private void butPageDown_Click(object sender, EventArgs e) {
// на одну страницу вниз
SendMessageCtxtBook.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
}
Внешний вид приложения показан на рис. 4.1.
Рис. 4.1. Программная прокрутка текста
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
5.3. Полосы прокрутки
5.3. Полосы прокрутки В некоторых случаях полосы прокрутки нарушают дизайн HTML-страницы. Если содержимое фрейма не помещается в отведенную область, то автоматически появляются полосы прокрутки для просмотра информации. Для управления отображением полос прокрутки
Устройства с широкой полосой пропускания и устройства, обеспечивающие связь на большой дальности
Устройства с широкой полосой пропускания и устройства, обеспечивающие связь на большой дальности Термин "устройства с широкой полосой пропускания" имеет несколько значений. Во-первых, этот термин обозначает устройства, позволяющие одновременно передавать различные
6.5. Управление панелями
6.5. Управление панелями Панели программы Midnight Commander чаще всего отображают содержимое каталогов файловой системы (поэтому называются иногда панелями каталогов). Однако на панель может быть выведена и некоторая другая информация. В настоящем разделе будет рассказано, как
8.4. Управление процессами
8.4. Управление процессами Первым делом научимся определять, какие процессы в системе запущены. Для этого в Linux (как и во всех UNIX-системах) имеется команда ps. Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущей сессии. Если вы хотите
8.5. Управление пользователями
8.5. Управление пользователями Задача управления пользователями имеет большое значение для истинно многопользовательских систем. Для персонального компьютера, о котором идет речь в этой книге, эта задача не так актуальна. Тем не менее, некоторые вопросы отразить
8.6. Управление ресурсами
8.6. Управление ресурсами В этом разделе мы рассмотрим только один аспект управления ресурсами: как сэкономить тот или иной ресурс, точнее, как поступить в случае, если какого-то ресурса недостаточно. Основными ресурсами компьютера являются память и дисковое пространство.
4.15.3. Управление стримером
4.15.3. Управление стримером Управление стримером выполняет программа int. Она входит в состав пакета mt-st, который обычно входит в состав дистрибутива. Эта программа точно есть в дистрибутивах Red Hat и Mandrake Linux. Программа mt использует устройство /dev/nftape, которое является ссылкой
5.8. Управление протоколированием
5.8. Управление протоколированием Этот раздел посвящен демону syslogd, а также управлению протоколированием сообщений системы и ядра с помощью этого демона. Прежде всего следует отметить, что демон находится в пакете sysklogd (если вы, конечно, используете Red Hat-совместимую
10.7 Управление потоком
10.7 Управление потоком Получатель TCP загружается поступающим потоком данных и определяет, какой объем информации он сможет принять. Это ограничение воздействует на отправителя TCP. Представленное ниже объяснение данного механизма является концептуальным, и разработчики
4 Удаленное управление
4 Удаленное управление Проблемы удаленного управления компьютером считаются прерогативой администраторов, поэтому необходимость их рассмотрения в этой книге долго оставалась под вопросом. В конце концов я решил описать методы удаленного управления по той простой
Управление финансами
Управление финансами Страница программы: http://www.saotron.ruСтатус: FreewareВести домашнюю бухгалтерию при мобильном образе жизни уж очень тяжко. Разве учтешь все эти перехваченные в пути газеты, бизнес-ланчи и прочие мелочи, из которых и складывается львиная доля расходов. Поди
10.4.2. Управление стримером
10.4.2. Управление стримером Управление стримером выполняет программа mt. Она входит в состав пакета mt-st, который обычно входит в состав дистрибутива (в дистрибутивах, основанных на Red Hat, он присутствует). Программа mt использует устройство /dev/nftape, которое является
Полосы прокрутки
Полосы прокрутки Полосы прокрутки (вертикальная и горизонтальная) используются для перемещения по содержимому документа (рис. 1.35). Чем больше документ и чем больше в нем страниц, тем меньше будет ползунок посередине полос прокрутки. Позиция ползунка позволяет
Управление блокировками
Управление блокировками При Классическом сервере каждый клиентский процесс сервера имеет свой собственный, связанный с базой данных кэш, и множество процессов борются за доступ к базе данных. Подсистема управления блокировками, fb lockrngr, использует методы внутреннего
4.4.3. Колесико для прокрутки
4.4.3. Колесико для прокрутки На современных мышах имеется колесико прокрутки, позволяющее прокручивать рабочую область документа. Листать страницы документа намного приятнее с помощью колесика, а не клавиш PageUp и