Ignore:
Timestamp:
Mar 23, 2000, 6:14:45 PM (25 years ago)
Author:
cbratschi
Message:

dynamic WINMM linking

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/comctl32/listview.cpp

    r3194 r3203  
    1 /*$Id: listview.cpp,v 1.5 2000-03-22 16:56:36 cbratschi Exp $*/
     1/*$Id: listview.cpp,v 1.6 2000-03-23 17:14:34 cbratschi Exp $*/
    22/*
    33 * Listview control
     
    1212 *
    1313 * TODO:
    14  *   1. No horizontal scrolling when header is larger than the client area.
    15  *   2. Drawing optimizations.
    16  *   3. Hot item handling.
     14 *   - Hot item handling.
    1715 *
    1816 * Notifications:
     
    3533 *   LISTVIEW_RedrawItems : empty stub
    3634 *   LISTVIEW_Update : not completed
    37  * WM_SETREDRAW not implemented
    3835 *
    3936 * the sort algorithm isn't stable (order of same items isn't fixed)!!!
     
    156153static LRESULT LISTVIEW_GetStringWidth(HWND hwnd,HDC hdc,LPWSTR lpszText,BOOL unicode);
    157154static BOOL    LISTVIEW_EnsureVisible(HWND hwnd,INT nItem,BOOL bPartial);
    158 static VOID    LISTVIEW_UpdateHeaderSize(HWND hwnd, INT nNewScrollPos);
     155static VOID    LISTVIEW_UpdateHeaderSize(HWND hwnd,INT nNewScrollPos,INT xScroll);
    159156
    160157static VOID LISTVIEW_Refresh(HWND hwnd)
     
    175172
    176173    GetClientRect(hwnd,&rect);
    177     GetClientRect(infoPtr->hwndHeader,&rect2);
    178     rect.top += rect2.bottom;
     174    GetWindowRect(infoPtr->hwndHeader,&rect2);
     175    rect.top += rect2.bottom-rect2.top;
    179176    InvalidateRect(hwnd,&rect,TRUE);
    180177  } else InvalidateRect(hwnd,NULL,TRUE);
     
    224221  if (infoPtr->refreshFlags & (RF_REFRESH | RF_NOREDRAW)) return;
    225222  LISTVIEW_GetItemRect(hwnd,nItem,&rect,LVIR_SELECTBOUNDS);
     223//CB: todo: clip header
    226224  InvalidateRect(hwnd,&rect,TRUE);
    227225}
     
    231229  LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO*)LISTVIEW_GetInfoPtr(hwnd);
    232230  RECT rect,header;
    233   INT xOffset = infoPtr->lefttop.x*LISTVIEW_SCROLL_DIV_SIZE;
     231  INT xOffset = infoPtr->lefttop.x*infoPtr->scrollStep.x;
    234232
    235233  if (infoPtr->refreshFlags & (RF_REFRESH | RF_NOREDRAW)) return;
    236234  LISTVIEW_GetItemRect(hwnd,nItem,&rect,LVIR_SELECTBOUNDS);
    237 
     235//CB: todo: clip header
    238236  //get header rect
    239237  Header_GetItemRect(infoPtr->hwndHeader,nSubItem,&header);
     
    260258    //clip header
    261259    GetClientRect(hwnd,&rect);
    262     GetClientRect(infoPtr->hwndHeader,&header);
     260    GetWindowRect(infoPtr->hwndHeader,&header);
     261
    263262    if (yScroll < 0)
    264     {
    265       //up
    266       rect.top += header.bottom-yScroll;
    267       ScrollWindowEx(hwnd,xScroll,yScroll,&rect,NULL,0,NULL,0);
    268       rect.top = rect.bottom+yScroll;
    269       if (rect.top < header.bottom) rect.top = header.bottom;
    270       InvalidateRect(hwnd,&rect,TRUE);//CB: still wrong pixels
     263    { //up
     264      INT headerH = header.bottom-header.top;
     265
     266      rect.top += headerH-yScroll;
     267      if (rect.top < rect.bottom)
     268      {
     269        ScrollWindowEx(hwnd,xScroll,yScroll,&rect,NULL,0,NULL,0);
     270        rect.top = rect.bottom+yScroll;
     271        if (rect.top < headerH) rect.top = headerH;
     272        InvalidateRect(hwnd,&rect,TRUE);//CB: still wrong pixels
     273      } else
     274      {
     275        rect.top = headerH;
     276        InvalidateRect(hwnd,&rect,TRUE);
     277      }
    271278    } else if (yScroll > 0)
    272279    { //down
    273       rect.top += header.bottom;
     280      rect.top += header.bottom-header.top;
    274281      ScrollWindowEx(hwnd,xScroll,yScroll,&rect,NULL,0,NULL,SW_INVALIDATE);
    275282    }
    276283    if (yScroll == 0)
    277284    {
    278       rect.top += header.bottom;
     285      rect.top += header.bottom-header.top;
    279286      ScrollWindowEx(hwnd,xScroll,yScroll,&rect,NULL,0,NULL,SW_INVALIDATE);
    280287    }
    281     if (xScroll != 0) LISTVIEW_UpdateHeaderSize(hwnd,infoPtr->lefttop.x);
     288
     289    if (xScroll != 0) LISTVIEW_UpdateHeaderSize(hwnd,infoPtr->lefttop.x,xScroll);
    282290  } else ScrollWindowEx(hwnd,xScroll,yScroll,NULL,NULL,0,NULL,SW_INVALIDATE);
    283291}
     
    297305 * NOTES
    298306 */
    299 static VOID LISTVIEW_UpdateHeaderSize(HWND hwnd, INT nNewScrollPos)
     307static VOID LISTVIEW_UpdateHeaderSize(HWND hwnd, INT nNewScrollPos,INT xScroll)
    300308{
    301309    LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO*)LISTVIEW_GetInfoPtr(hwnd);
     
    310318
    311319    MapWindowPoints(HWND_DESKTOP, hwnd, point, 2);
    312     point[0].x = -(nNewScrollPos * LISTVIEW_SCROLL_DIV_SIZE);
    313     point[1].x += (nNewScrollPos * LISTVIEW_SCROLL_DIV_SIZE);
    314 
    315     SetWindowPos(infoPtr->hwndHeader,0,
    316         point[0].x,point[0].y,point[1].x,point[1].y,
    317         SWP_NOZORDER | SWP_NOACTIVATE);
     320    point[0].x = -nNewScrollPos*infoPtr->scrollStep.x;
     321    point[1].x += nNewScrollPos*infoPtr->scrollStep.x;
     322
     323    //CB: todo: smoother scrolling (BTW: SWP_NOREDRAW doesn't work!)
     324    SetWindowPos(infoPtr->hwndHeader,0,point[0].x,point[0].y,point[1].x,point[1].y,SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREDRAW);
    318325}
    319326
     
    340347  if (dwStyle & LVS_NOSCROLL)
    341348  {
     349    infoPtr->lefttop.x = 0;
     350    infoPtr->lefttop.y = 0;
     351    infoPtr->maxScroll = infoPtr->lefttop;
     352    infoPtr->scrollPage = infoPtr->lefttop;
     353    infoPtr->scrollStep = infoPtr->lefttop;
    342354    ShowScrollBar(hwnd,SB_BOTH,FALSE);
    343355    return;
     
    353365    INT nCountPerRow = LISTVIEW_GetCountPerRow(hwnd);
    354366    INT nNumOfItems = GETITEMCOUNT(infoPtr);
    355 //CB: todo: doesn't work!
    356     infoPtr->maxScroll.x = nNumOfItems / nCountPerColumn+1;
     367
     368    infoPtr->maxScroll.x = nNumOfItems / nCountPerColumn;
    357369    if ((nNumOfItems % nCountPerColumn) == 0)
    358370      infoPtr->maxScroll.x--;
     
    360372    infoPtr->lefttop.x = LISTVIEW_GetTopIndex(hwnd) / nCountPerColumn;
    361373    infoPtr->scrollPage.x = nCountPerRow;
     374    infoPtr->scrollStep.x = infoPtr->nItemWidth;
    362375
    363376    scrollInfo.nMin  = 0;
     
    373386    infoPtr->lefttop.y = LISTVIEW_GetTopIndex(hwnd);
    374387    infoPtr->scrollPage.y = LISTVIEW_GetCountPerColumn(hwnd);
     388    infoPtr->scrollStep.y = infoPtr->nItemHeight;
    375389
    376390    scrollInfo.nMin  = 0;
     
    388402    infoPtr->scrollPage.x = nListWidth / LISTVIEW_SCROLL_DIV_SIZE;
    389403    infoPtr->maxScroll.x = max(infoPtr->nItemWidth / LISTVIEW_SCROLL_DIV_SIZE, 0);
     404    infoPtr->scrollStep.x = LISTVIEW_SCROLL_DIV_SIZE;
    390405
    391406    scrollInfo.nMin  = 0;
     
    397412
    398413    /* Update the Header Control */
    399     LISTVIEW_UpdateHeaderSize(hwnd,infoPtr->lefttop.x);
     414    LISTVIEW_UpdateHeaderSize(hwnd,infoPtr->lefttop.x,0);
    400415  } else
    401416  {
     
    412427      infoPtr->maxScroll.x = max(nViewWidth / LISTVIEW_SCROLL_DIV_SIZE, 0);
    413428      infoPtr->scrollPage.x = nListWidth / LISTVIEW_SCROLL_DIV_SIZE;
     429      infoPtr->scrollStep.x = LISTVIEW_SCROLL_DIV_SIZE;
    414430
    415431      scrollInfo.nMin  = 0;
     
    426442      infoPtr->maxScroll.y = max(nViewHeight / LISTVIEW_SCROLL_DIV_SIZE,0);
    427443      infoPtr->scrollPage.y = nListHeight / LISTVIEW_SCROLL_DIV_SIZE;
     444      infoPtr->scrollStep.y = LISTVIEW_SCROLL_DIV_SIZE;
    428445
    429446      scrollInfo.nMin  = 0;
     
    615632//        lprcView->left, lprcView->top, lprcView->right, lprcView->bottom);
    616633
    617   if (lprcView != NULL)
     634  if (lprcView)
    618635  {
    619636    bResult = TRUE;
     
    645662  POINT ptOrigin;
    646663
    647 //  TRACE("(hwnd=%x, lprcView=%p)\n", hwnd, lprcView);
    648 
    649   if (lprcView != NULL)
     664  if (lprcView)
    650665  {
    651666    bResult = LISTVIEW_GetOrigin(hwnd, &ptOrigin);
    652     if (bResult != FALSE)
     667    if (bResult)
    653668    {
    654669      lprcView->left = infoPtr->rcView.left + ptOrigin.x;
     
    657672      lprcView->bottom = infoPtr->rcView.bottom + ptOrigin.y;
    658673    }
    659 
    660 //    TRACE("(left=%d, top=%d, right=%d, bottom=%d)\n",
    661 //          lprcView->left, lprcView->top, lprcView->right, lprcView->bottom);
    662674  }
    663675
     
    719731  INT i;
    720732
    721 //  TRACE("(hwnd=%x)\n", hwnd);
    722 
    723733  if (uView == LVS_ICON)
    724734  {
     
    731741    for (i = 0; i < nHeaderItemCount; i++)
    732742    {
    733       if (Header_GetItemRect(infoPtr->hwndHeader, i, &rcHeaderItem) != 0)
     743      if (Header_GetItemRect(infoPtr->hwndHeader, i, &rcHeaderItem))
    734744      {
    735745        nItemWidth += (rcHeaderItem.right - rcHeaderItem.left);
     
    20612071  INT nColumnCount = Header_GetItemCount(infoPtr->hwndHeader);
    20622072  RECT rcItem,rcClient,*rcHeader;
    2063   INT  j,nItem,nLast,xOffset = infoPtr->lefttop.x*LISTVIEW_SCROLL_DIV_SIZE;
     2073  INT  j,nItem,nLast,xOffset = infoPtr->lefttop.x*infoPtr->scrollStep.x;
    20642074
    20652075  nItem = LISTVIEW_GetTopIndex(hwnd);
     
    22482258
    22492259  GetClientRect(hwnd,&rcClient);
    2250 //CB: todo: hscroll!
     2260
    22512261  for (i = 0; i < nColumnCount; i++)
    22522262  {
     
    29772987
    29782988  rcItem.left = LVIR_BOUNDS;
    2979   if (LISTVIEW_GetItemRect(hwnd, nItem, &rcItem) != FALSE)
     2989  if (LISTVIEW_GetItemRect(hwnd, nItem, &rcItem))
    29802990  {
    29812991    if (rcItem.left < infoPtr->rcList.left)
     
    29862996        if (uView == LVS_LIST)
    29872997        {
    2988           nScrollPosWidth = infoPtr->nItemWidth;
     2998          nScrollPosWidth = infoPtr->scrollStep.x;
    29892999          rcItem.left += infoPtr->rcList.left;
    29903000        } else if ((uView == LVS_SMALLICON) || (uView == LVS_ICON))
    29913001        {
    2992           nScrollPosWidth = LISTVIEW_SCROLL_DIV_SIZE;
     3002          nScrollPosWidth = infoPtr->scrollStep.x;
    29933003          rcItem.left += infoPtr->rcList.left;
    29943004        }
     
    29963006        /* When in LVS_REPORT view, the scroll position should
    29973007           not be updated. */
    2998         if (nScrollPosWidth != 0)
     3008        if (nScrollPosWidth)
    29993009        {
    30003010          if (rcItem.left % nScrollPosWidth == 0)
     
    30183028        {
    30193029          rcItem.right -= infoPtr->rcList.right;
    3020           nScrollPosWidth = infoPtr->nItemWidth;
     3030          nScrollPosWidth = infoPtr->scrollStep.x;
    30213031        } else if ((uView == LVS_SMALLICON) || (uView == LVS_ICON))
    30223032        {
    30233033          rcItem.right -= infoPtr->rcList.right;
    3024           nScrollPosWidth = LISTVIEW_SCROLL_DIV_SIZE;
     3034          nScrollPosWidth = infoPtr->scrollStep.x;
    30253035        }
    30263036
    30273037        /* When in LVS_REPORT view, the scroll position should
    30283038           not be updated. */
    3029         if (nScrollPosWidth != 0)
     3039        if (nScrollPosWidth)
    30303040        {
    30313041          SCROLLINFO scrollInfo;
     
    30533063        {
    30543064          rcItem.top -= infoPtr->rcList.top;
    3055           nScrollPosHeight = infoPtr->nItemHeight;
     3065          nScrollPosHeight = infoPtr->scrollStep.y;
    30563066        }
    30573067        else if ((uView == LVS_ICON) || (uView == LVS_SMALLICON))
    30583068        {
    3059           nScrollPosHeight = LISTVIEW_SCROLL_DIV_SIZE;
     3069          nScrollPosHeight = infoPtr->scrollStep.y;
    30603070          rcItem.top += infoPtr->rcList.top;
    30613071        }
     
    30723082        }
    30733083      }
    3074     }
    3075     else if (rcItem.bottom > infoPtr->rcList.bottom)
     3084    } else if (rcItem.bottom > infoPtr->rcList.bottom)
    30763085    {
    30773086      /* scroll down */
     
    30813090        {
    30823091          rcItem.bottom -= infoPtr->rcList.bottom;
    3083           nScrollPosHeight = infoPtr->nItemHeight;
    3084         }
    3085         else if ((uView == LVS_ICON) || (uView == LVS_SMALLICON))
    3086         {
    3087           nScrollPosHeight = LISTVIEW_SCROLL_DIV_SIZE;
     3092          nScrollPosHeight = infoPtr->scrollStep.y;
     3093        } else if ((uView == LVS_ICON) || (uView == LVS_SMALLICON))
     3094        {
     3095          nScrollPosHeight = infoPtr->scrollStep.x;
    30883096          rcItem.bottom -= infoPtr->rcList.bottom;
    30893097        }
     
    31033111
    31043112  if ((oldlefttop.x != infoPtr->lefttop.x) || (oldlefttop.y != infoPtr->lefttop.y))
    3105     LISTVIEW_ScrollWindow(hwnd,(oldlefttop.x-infoPtr->lefttop.x)*LISTVIEW_SCROLL_DIV_SIZE,(oldlefttop.y-infoPtr->lefttop.y)*infoPtr->nItemHeight,uView);
     3113    LISTVIEW_ScrollWindow(hwnd,(oldlefttop.x-infoPtr->lefttop.x)*infoPtr->scrollStep.x,(oldlefttop.y-infoPtr->lefttop.y)*infoPtr->scrollStep.y,uView);
    31063114
    31073115  return TRUE;
     
    48054813  {
    48064814    if (dwStyle & WS_HSCROLL)
    4807       lpptOrigin->x = -infoPtr->lefttop.x*LISTVIEW_SCROLL_DIV_SIZE;
     4815      lpptOrigin->x = -infoPtr->lefttop.x*infoPtr->scrollStep.x;
    48084816    else
    48094817      lpptOrigin->x = 0;
    48104818
    48114819    if (dwStyle & WS_VSCROLL)
    4812       lpptOrigin->y = -infoPtr->lefttop.y*LISTVIEW_SCROLL_DIV_SIZE;
     4820      lpptOrigin->y = -infoPtr->lefttop.y*infoPtr->scrollStep.y;
    48134821    else
    48144822      lpptOrigin->y = 0;
     
    64606468    DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
    64616469    UINT uView =  dwStyle & LVS_TYPEMASK;
    6462     INT xScroll = (oldX-infoPtr->lefttop.x)* LISTVIEW_SCROLL_DIV_SIZE;//CB:tocheck
     6470    INT xScroll = (oldX-infoPtr->lefttop.x)*infoPtr->scrollStep.x;
    64636471
    64646472    ZeroMemory(&scrollInfo, sizeof(SCROLLINFO));
     
    71037111  {
    71047112    /* handle notification from header control */
    7105     if ((lpnmh->code == HDN_ENDTRACKA) || (lpnmh->code == HDN_ENDTRACKW))
    7106     {
    7107       infoPtr->nItemWidth = LISTVIEW_GetItemWidth(hwnd);
    7108       LISTVIEW_Refresh(hwnd);
    7109     }
    7110     else if((lpnmh->code ==  HDN_ITEMCLICKA) || (lpnmh->code ==  HDN_ITEMCLICKW))
    7111     {
    7112         /* Handle sorting by Header Column */
    7113         NMLISTVIEW nmlv;
    7114         LPNMHEADERA pnmHeader = (LPNMHEADERA) lpnmh;
    7115 
    7116         ZeroMemory(&nmlv, sizeof(NMLISTVIEW));
    7117         nmlv.iItem = -1;
    7118         nmlv.iSubItem = pnmHeader->iItem;
    7119 
    7120         sendNotify(hwnd,LVN_COLUMNCLICK,&nmlv.hdr);
    7121 
    7122     }
    7123     else if(lpnmh->code == NM_RELEASEDCAPTURE)
    7124     {
    7125       /* Idealy this should be done in HDN_ENDTRACKA
    7126        * but since SetItemBounds in Header.c is called after
    7127        * the notification is sent, it is neccessary to handle the
    7128        * update of the scroll bar here (Header.c works fine as it is,
    7129        * no need to disturb it)
    7130        */
    7131       infoPtr->nItemWidth = LISTVIEW_GetItemWidth(hwnd);
    7132       LISTVIEW_UpdateScroll(hwnd);
    7133       LISTVIEW_Refresh(hwnd);
    7134     }
    7135 
     7113    if ((lpnmh->code == HDN_ITEMCHANGEDA) || (lpnmh->code == HDN_ITEMCHANGEDW))
     7114    {
     7115      INT width;
     7116
     7117      width = LISTVIEW_GetItemWidth(hwnd);
     7118      if (width != infoPtr->nItemWidth)
     7119      {
     7120        infoPtr->nItemWidth = width;
     7121        LISTVIEW_UpdateScroll(hwnd);
     7122        LISTVIEW_Refresh(hwnd);
     7123      }
     7124    } else if((lpnmh->code ==  HDN_ITEMCLICKA) || (lpnmh->code ==  HDN_ITEMCLICKW))
     7125    {
     7126      /* Handle sorting by Header Column */
     7127      NMLISTVIEW nmlv;
     7128      LPNMHEADERA pnmHeader = (LPNMHEADERA)lpnmh;
     7129
     7130      ZeroMemory(&nmlv, sizeof(NMLISTVIEW));
     7131      nmlv.iItem = -1;
     7132      nmlv.iSubItem = pnmHeader->iItem;
     7133
     7134      sendNotify(hwnd,LVN_COLUMNCLICK,&nmlv.hdr);
     7135    }
    71367136  }
    71377137
     
    74097409{
    74107410  LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO*)LISTVIEW_GetInfoPtr(hwnd);
    7411   LONG lStyle = GetWindowLongA(hwnd, GWL_STYLE);
    7412   UINT uView = lStyle & LVS_TYPEMASK;
     7411  DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
     7412  UINT uView = dwStyle & LVS_TYPEMASK;
    74137413
    74147414  LISTVIEW_UpdateSize(hwnd);
     7415  LISTVIEW_UpdateScroll(hwnd);
    74157416
    74167417  if ((uView == LVS_SMALLICON) || (uView == LVS_ICON))
    74177418  {
    7418     if (lStyle & LVS_ALIGNLEFT)
    7419     {
     7419    if (dwStyle & LVS_ALIGNLEFT)
    74207420      LISTVIEW_AlignLeft(hwnd);
    7421     }
    74227421    else
    7423     {
    74247422      LISTVIEW_AlignTop(hwnd);
    7425     }
    7426   }
    7427 
    7428   /* invalidate client area + erase background */
    7429   infoPtr->refreshFlags |= RF_UPDATESCROLL;
    7430   LISTVIEW_QueueRefresh(hwnd);
    7431 
     7423  }
    74327424  return 0;
    74337425}
     
    74467438{
    74477439  LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO*)LISTVIEW_GetInfoPtr(hwnd);
    7448   LONG lStyle = GetWindowLongA(hwnd, GWL_STYLE);
    7449   UINT uView = lStyle & LVS_TYPEMASK;
     7440  LONG dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
     7441  UINT uView = dwStyle & LVS_TYPEMASK;
    74507442  RECT rcList;
    74517443
     
    74587450  if (uView == LVS_LIST)
    74597451  {
    7460     if ((lStyle & WS_HSCROLL) == 0)
     7452    if (!(dwStyle & WS_HSCROLL))
    74617453    {
    74627454      INT nHScrollHeight = GetSystemMetrics(SM_CYHSCROLL);
     
    74667458      }
    74677459    }
    7468   }
    7469   else if (uView == LVS_REPORT)
    7470   {
    7471     HDLAYOUT hl;
    7472     WINDOWPOS wp;
    7473 
    7474     hl.prc = &rcList;
    7475     hl.pwpos = &wp;
    7476     Header_Layout(infoPtr->hwndHeader, &hl);
    7477     SetWindowPos(infoPtr->hwndHeader,hwnd,wp.x,wp.y,wp.cx,wp.cy,wp.flags);
    7478     if (!(LVS_NOCOLUMNHEADER & lStyle))
    7479     {
    7480       infoPtr->rcList.top = max(wp.cy, 0);
     7460  } else if (uView == LVS_REPORT)
     7461  {
     7462    if (!(dwStyle & LVS_NOCOLUMNHEADER))
     7463    {
     7464      HDLAYOUT hl;
     7465      WINDOWPOS wp;
     7466
     7467      hl.prc = &rcList;
     7468      hl.pwpos = &wp;
     7469      Header_Layout(infoPtr->hwndHeader, &hl);
     7470      SetWindowPos(infoPtr->hwndHeader,hwnd,wp.x,wp.y,wp.cx,wp.cy,wp.flags);
     7471      infoPtr->rcList.top = max(wp.cy,0);
    74817472    }
    74827473  }
     
    74987489                                 LPSTYLESTRUCT lpss)
    74997490{
    7500   LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)LISTVIEW_GetInfoPtr(hwnd);
     7491  LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO*)LISTVIEW_GetInfoPtr(hwnd);
    75017492  UINT uNewView = lpss->styleNew & LVS_TYPEMASK;
    75027493  UINT uOldView = lpss->styleOld & LVS_TYPEMASK;
    75037494  RECT rcList = infoPtr->rcList;
    7504 
    7505 //  TRACE("(hwnd=%x, styletype=%x, stylestruct=%p)\n",
    7506 //        hwnd, wStyleType, lpss);
    75077495
    75087496  if (wStyleType == GWL_STYLE)
     
    82108198
    82118199  ZeroMemory(&wndClass, sizeof(WNDCLASSA));
    8212   wndClass.style = CS_GLOBALCLASS | CS_DBLCLKS;
     8200  wndClass.style = CS_GLOBALCLASS | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
    82138201  wndClass.lpfnWndProc = (WNDPROC)LISTVIEW_WindowProc;
    82148202  wndClass.cbClsExtra = 0;
Note: See TracChangeset for help on using the changeset viewer.