[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