[C con Clase] scrollbars
Andesbit Cp
andesbit en ymail.com
Mar Abr 19 22:06:23 CEST 2011
Que tal
En mi ventana tengo necesidad de dos scrollbars vertivales. ¿Cómo las puedo diferenciar en el evento WM_VSCROLL?
mi evento está codificado asi para uno de los scrollbars
case WM_VSCROLL:
GetScrollInfo((HWND)lParam, SB_CTL, &si);
switch(LOWORD(wParam)) {
case SB_LINEDOWN:si.nPos++; break;
case SB_LINEUP:si.nPos--; break;
case SB_PAGEDOWN:si.nPos+=si.nPage; break;
case SB_PAGEUP:si.nPos-=si.nPage; break;
case SB_BOTTOM:si.nPos=si.nMax; break;
case SB_TOP:si.nPos=si.nMin; break;
case SB_THUMBTRACK://
case SB_THUMBPOSITION: si.nPos=(int)wParam>>16;break;
}
if(si.nPos<0)si.nPos = 0;
_scrolly=si.nPos;
SetScrollInfo((HWND)lParam, SB_CTL, &si, TRUE);
break;
Otra pregunta ¿Por qué no salen los triagulitos negros en los botones del scrollbar?
Creo que el evento WM_SIZE los borra:
case WM_CREATE:
hinstance=((LPCREATESTRUCT)lParam)->hInstance;
barrav = CreateWindowEx( 0, "SCROLLBAR", NULL,SBS_VERT|WS_CHILD|WS_VISIBLE,
0, 0, 20, 120,hwnd,(HMENU)ID_SCROLLV,hinstance, NULL);
si.cbSize = sizeof(si);
si.fMask=SIF_RANGE|SIF_PAGE|SIF_POS;
si.nMin=0;si.nMax=100;si.nPage=5;si.nPos=0;
SetScrollInfo(barrav, SB_CTL, &si, TRUE);
break;
case WM_SIZE:
GetClientRect(hwnd,&re);
MoveWindow(barrav,re.right-20,re.top,re.right,re.bottom-_tamy_cuadro,1);
break;
Uso Dev c++ para windows
Gracias
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110419/496dd899/attachment.html>
Más información sobre la lista de distribución Cconclase