92978b58

Приложение SCROLL - 4


// Устанавливаем шрифт, выбранный в пространство // отображения по умолчанию ResetFont(hps);

// Возвращаем пространство отображения WinEndPaint(hps); return 0; }

case WM_ERASEBACKGROUND: return(MRFROMLONG(1L));

// Это сообщение приходит от вертикальной // полосы просмотра case WM_VSCROLL: { // В зависимости от кода извещения // изменяем содержимое переменной, в которой // хранится координата движка switch (SHORT2FROMMP(mp2)) { case SB_LINEDOWN: { nYScrollPos += 1; break; } case SB_LINEUP: { nYScrollPos -= 1; break; } case SB_PAGEDOWN: { nYScrollPos += cyClient / cyChar; break; } case SB_PAGEUP: { nYScrollPos -= cyClient / cyChar; break; } case SB_SLIDERTRACK: { nYScrollPos = SHORT1FROMMP(mp2); break; }

default: break; }

// Ограничиваем диапазон изменения // координаты движка if(nYScrollPos > YSIZE) nYScrollPos = YSIZE; if(nYScrollPos < 0) nYScrollPos = 0;

// Устанавливаем новую позицию движка WinSendMsg(hwndYScroll, SBM_SETPOS, (MPARAM)nYScrollPos, NULL);

// Перерисовываем окно приложения WinInvalidateRect(hWnd, NULL, TRUE);

return 0; }

// Это сообщение приходит от горизонтальной // полосы просмотра case WM_HSCROLL: { // В зависимости от кода извещения // изменяем содержимое переменной, в которой // хранится координата движка switch (SHORT2FROMMP(mp2)) { case SB_LINELEFT: { nXScrollPos -= 1; break; } case SB_LINERIGHT: { nXScrollPos += 1; break; } case SB_PAGERIGHT: { nXScrollPos += 10; break; } case SB_PAGELEFT: { nXScrollPos -= 10; break; } case SB_SLIDERTRACK: { nXScrollPos = SHORT1FROMMP(mp2); break; }

default: break; }

// Ограничиваем диапазон изменения // координаты движка if(nXScrollPos < 0) nXScrollPos = 0;

// Устанавливаем новую позицию движка WinSendMsg(hwndXScroll, SBM_SETPOS, (MPARAM)nXScrollPos, NULL);

// Перерисовываем окно приложения WinInvalidateRect(hWnd, NULL, TRUE);

return 0; }

// Это сообщение появляется, когда пользователь // нажимает или отжимает клавишу case WM_CHAR: { // Пропускаем только виртуальные клавиши if(!(CHARMSG(&msg) ->fs & KC_VIRTUALKEY)) return 0;




Начало  Назад  Вперед