Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 46


SetScrol]Range(h\Vnd, SBJVERT, 0. nVertDilTcrence, TRUE); else

SetScrollRangc(hWnd, SB_VERT, 0. 0, TRUE); SelectObject(hCompatibleDC, hOldBitmap); DeleteDC(hCompatibleDC); EndPaint(hWnd,&PaintStmct); return 0;

case WM_VSCROLL: svvitcli(LOWORD(wParam))

\

case SB LINEDOWN;

if(nVcrtPosition < nVertDiiTerencc) nVerlPosition—;

break; case SB_LINEUP:

if(nVcrtPosi(ion > 0) nVerlPosition—;

break; ease SB_THUMBTRACK:

nVcrtPosition - HIWORD(wParam);

break; I

SetScrollPosfhWnd, SB VERT, nVcrtPosition, TRUE); InvalidatcRect(hWnd. NULL, TRUE); return 0;

case \VM_HSCROLL: switch(LOWORD(wParam))

I

'caseSB_LINEDO\VN: ii'fnHorizPosition < nHorizDilTerence)

ullori/.Position—'-; break:

case SB  LINEUP: if(nHorizPosition > 0)

52

nHori/.Position--;

break;

case SBjniUMBTRACK: nHori/Posilion -- HIWORD(wParam); break;

SelScrollPos(h\Vmi, SBJIORZ, nHori/Position, TRUE); InvalidateRect(h\Vnd, NULL, TRUE); return 0;

case WM_DF,STROY: DeicteObjea(liBitmap); PostQu!lMessage(0); relnrti 0;

return DefWindowProc(h\Vnd,Messagc,wParam, Il'aram);

Пил. окна, создаваемого программой, показан на рис. 4.

Ноли в окне не отображаются горизонтальная и вертикальная полосы прокрутки, необходимо уменьшить размеры окна по горизонтали и нертикали.

BProgiamNol

i\  i. Пример |VK:.'ibi пилос прокрутки

53

Появились полосы прокрутки? Давайте разберемся, благодаря чему это произошло.

Во-первых, если сравнить вызовы функций CreateWindow() в этой и предыдущей программах, то можно увидеть, что у окна появились два новых стиля - WS__HSCROLL и WSJVSCROLL. Эти стили определяют наличие у окна горизонтальной и вертикальной полос прокрутки соответ­ственно. Первый шаг сделан. Этот шаг можно было бы сделать и по-другому, определив полосы прокрутки как дочерние окна, но о дочерних окнах мы будем говорить позже. Разница между полосами прокружи, являющимися частью окна, и полосами прокрутки - дочерними окнами состоит в том, что дочерние окна имеют встроенный клавиатурный интерфейс, позволяющий воздействовать на полосу прокрутки с помо­щью клавиатуры. Встроенным полосам прокрутки, к сожалению, доста­лось только управление с помощью курсора мыши.




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



Книжный магазин