Changeset 592 for trunk/src


Ignore:
Timestamp:
Aug 19, 1999, 11:24:19 PM (26 years ago)
Author:
cbratschi
Message:

progress, trackbar: finished version 5.00 (IE5)

Location:
trunk/src/comctl32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/comctl32/progress.c

    r496 r592  
    1 /* $Id: progress.c,v 1.8 1999-08-14 16:13:12 cbratschi Exp $ */
     1/* $Id: progress.c,v 1.9 1999-08-19 21:24:19 cbratschi Exp $ */
    22/*
    33 * Progress control
     
    99 *
    1010 * Status: complete
     11 * Version: 5.00
    1112 */
    1213
  • trunk/src/comctl32/trackbar.c

    r538 r592  
    1 /* $Id: trackbar.c,v 1.13 1999-08-17 21:13:57 cbratschi Exp $ */
     1/* $Id: trackbar.c,v 1.14 1999-08-19 21:24:19 cbratschi Exp $ */
    22/*
    33 * Trackbar control
     
    99 *
    1010 *
    11  * TODO:
    12  *
    13  *   - more notifications. (CB: should be complete)
    14  *   - Status: ready to use
     11 * Status: ready to use
     12 * Version: 5.00
    1513 */
    1614
     
    656654    HBRUSH hBrush = CreateSolidBrush(infoPtr->clrBk);
    657655    int i;
     656    NMCUSTOMDRAW cdraw;
     657    LRESULT cdctlres,cdres;
    658658
    659659    GetClientRect(hwnd,&rcClient);
     660
     661    //Custom draw
     662    cdraw.hdr.hwndFrom = hwnd;
     663    cdraw.hdr.idFrom   = GetWindowLongA(hwnd,GWL_ID);
     664    cdraw.hdr.code     = NM_CUSTOMDRAW;
     665    cdraw.dwDrawStage  = CDDS_PREPAINT;
     666    cdraw.hdc          = hdc;
     667    cdraw.dwItemSpec   = 0;
     668    cdraw.uItemState   = CDIS_DEFAULT;
     669    cdraw.rc           = rcClient;
     670    cdraw.lItemlParam  = 0;
     671
     672    cdctlres = SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     673
     674    if (cdctlres & CDRF_SKIPDEFAULT) return;
    660675
    661676    //Background
     
    680695    /* draw channel */
    681696
    682     rcChannel = infoPtr->rcChannel;
    683     rcSelection = infoPtr->rcSelection;
    684     DrawEdge(hdc,&rcChannel,EDGE_SUNKEN,BF_RECT | BF_ADJUST);
    685 
    686     if (dwStyle & TBS_ENABLESELRANGE)           /* fill the channel */
    687     {
    688       HBRUSH hbr = CreateSolidBrush(RGB(255,255,255));
    689       FillRect(hdc,&rcChannel,hbr);
    690       DeleteObject(hbr);
    691       if (((dwStyle & TBS_VERT) && (rcSelection.top != rcSelection.bottom)) ||
    692          ((!(dwStyle & TBS_VERT)) && (rcSelection.left != rcSelection.right)))
    693          {
    694            hbr = CreateSolidBrush (COLOR_HIGHLIGHT);
    695            FillRect (hdc,&rcSelection,hbr);
    696            DeleteObject(hbr);
    697          }
     697    if (cdctlres & CDRF_NOTIFYITEMDRAW)
     698    {
     699      cdraw.dwDrawStage    = CDDS_ITEMPREPAINT;
     700      cdraw.dwItemSpec     = TBCD_CHANNEL;
     701      cdraw.rc             = infoPtr->rcChannel;
     702
     703      cdres = SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     704    } else cdres = 0;
     705
     706    if (!(cdres & CDRF_SKIPDEFAULT))
     707    {
     708      rcChannel = infoPtr->rcChannel;
     709      rcSelection = infoPtr->rcSelection;
     710      DrawEdge(hdc,&rcChannel,EDGE_SUNKEN,BF_RECT | BF_ADJUST);
     711
     712      if (dwStyle & TBS_ENABLESELRANGE)           /* fill the channel */
     713      {
     714        HBRUSH hbr = CreateSolidBrush(RGB(255,255,255));
     715        FillRect(hdc,&rcChannel,hbr);
     716        DeleteObject(hbr);
     717        if (((dwStyle & TBS_VERT) && (rcSelection.top != rcSelection.bottom)) ||
     718           ((!(dwStyle & TBS_VERT)) && (rcSelection.left != rcSelection.right)))
     719           {
     720             hbr = CreateSolidBrush (COLOR_HIGHLIGHT);
     721             FillRect (hdc,&rcSelection,hbr);
     722             DeleteObject(hbr);
     723           }
     724      }
     725
     726      if (cdctlres & CDRF_NOTIFYITEMDRAW)
     727      {
     728        cdraw.dwDrawStage    = CDDS_ITEMPOSTPAINT;
     729
     730        SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     731      }
    698732    }
    699733
    700734    /* draw tics */
    701735
    702     if (!(dwStyle & TBS_NOTICKS))
    703     {
    704       int ticFlags = dwStyle & 0x0f;
    705       COLORREF clrTic = GetSysColor(COLOR_3DDKSHADOW);
    706 
    707       for (i = 0;i < infoPtr->uNumTics;i++)
    708           TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->tics[i],ticFlags,clrTic);
    709 
    710       TRACKBAR_DrawTics(infoPtr,hdc,0,ticFlags | TIC_LEFTEDGE,clrTic);
    711       TRACKBAR_DrawTics(infoPtr,hdc,0,ticFlags | TIC_RIGHTEDGE,clrTic);
    712 
    713       if ((dwStyle & TBS_ENABLESELRANGE) &&
    714             ((dwStyle & TBS_VERT && rcSelection.bottom != rcSelection.top) ||
    715             (!(dwStyle & TBS_VERT) && rcSelection.left != rcSelection.right)))
    716             {
    717               TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->nSelMin,ticFlags | TIC_SELECTIONMARKMIN,clrTic);
    718               TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->nSelMax,ticFlags | TIC_SELECTIONMARKMAX,clrTic);
    719             }
     736    if (cdctlres & CDRF_NOTIFYITEMDRAW)
     737    {
     738      cdraw.dwDrawStage    = CDDS_ITEMPREPAINT;
     739      cdraw.dwItemSpec     = TBCD_TICS;
     740      SetRectEmpty(&cdraw.rc);
     741
     742      cdres = SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     743    } else cdres = 0;
     744
     745    if (!(cdres & CDRF_SKIPDEFAULT))
     746    {
     747      if (!(dwStyle & TBS_NOTICKS))
     748      {
     749        int ticFlags = dwStyle & 0x0f;
     750        COLORREF clrTic = GetSysColor(COLOR_3DDKSHADOW);
     751
     752        for (i = 0;i < infoPtr->uNumTics;i++)
     753            TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->tics[i],ticFlags,clrTic);
     754
     755        TRACKBAR_DrawTics(infoPtr,hdc,0,ticFlags | TIC_LEFTEDGE,clrTic);
     756        TRACKBAR_DrawTics(infoPtr,hdc,0,ticFlags | TIC_RIGHTEDGE,clrTic);
     757
     758        if ((dwStyle & TBS_ENABLESELRANGE) &&
     759              ((dwStyle & TBS_VERT && rcSelection.bottom != rcSelection.top) ||
     760              (!(dwStyle & TBS_VERT) && rcSelection.left != rcSelection.right)))
     761              {
     762                TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->nSelMin,ticFlags | TIC_SELECTIONMARKMIN,clrTic);
     763                TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->nSelMax,ticFlags | TIC_SELECTIONMARKMAX,clrTic);
     764              }
     765      }
     766
     767      if (cdctlres & CDRF_NOTIFYITEMDRAW)
     768      {
     769        cdraw.dwDrawStage    = CDDS_ITEMPOSTPAINT;
     770
     771        SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     772      }
    720773    }
    721774
    722775    /* draw thumb */
    723776
    724     TRACKBAR_DrawThumb(infoPtr,hdc,dwStyle);
     777    if (cdctlres & CDRF_NOTIFYITEMDRAW)
     778    {
     779      cdraw.dwDrawStage    = CDDS_ITEMPREPAINT;
     780      cdraw.dwItemSpec     = TBCD_THUMB;
     781      cdraw.rc             = infoPtr->rcFullThumb;
     782
     783      cdres = SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     784    } else cdres = 0;
     785
     786    if (!(cdres & CDRF_SKIPDEFAULT))
     787    {
     788      TRACKBAR_DrawThumb(infoPtr,hdc,dwStyle);
     789
     790      if (cdctlres & CDRF_NOTIFYITEMDRAW)
     791      {
     792        cdraw.dwDrawStage    = CDDS_ITEMPOSTPAINT;
     793
     794        SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     795      }
     796
     797    }
    725798
    726799    if (infoPtr->bFocus) DrawFocusRect(hdc,&rcClient);
     800
     801    if (cdctlres & CDRF_NOTIFYPOSTPAINT)
     802    {
     803      cdraw.dwDrawStage    = CDDS_POSTPAINT;
     804      cdraw.dwItemSpec     = 0;
     805      GetClientRect(hwnd,&cdraw.rc);
     806
     807      SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)cdraw.hdr.idFrom,(LPARAM)&cdraw);
     808    }
     809
    727810}
    728811
     
    834917TRACKBAR_AlignBuddies (HWND hwnd, TRACKBAR_INFO *infoPtr)
    835918{
    836     DWORD dwStyle = GetWindowLongA (hwnd, GWL_STYLE);
    837     HWND hwndParent = GetParent (hwnd);
    838     RECT rcSelf, rcBuddy;
     919    DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
     920    HWND hwndParent = GetParent(hwnd);
     921    RECT rcSelf,rcBuddy;
    839922    INT x, y;
    840923
    841     GetWindowRect (hwnd, &rcSelf);
    842     MapWindowPoints (HWND_DESKTOP, hwndParent, (LPPOINT)&rcSelf, 2);
     924    GetClientRect(hwnd,&rcSelf);
     925    MapWindowPoints(hwnd,hwndParent,(LPPOINT)&rcSelf,2);
    843926
    844927    /* align buddy left or above */
    845     if (infoPtr->hwndBuddyLA) {
    846         GetWindowRect (infoPtr->hwndBuddyLA, &rcBuddy);
    847         MapWindowPoints (HWND_DESKTOP, hwndParent, (LPPOINT)&rcBuddy, 2);
    848 
    849         if (dwStyle & TBS_VERT) {
    850             x = (infoPtr->rcChannel.right + infoPtr->rcChannel.left) / 2 -
    851                 (rcBuddy.right - rcBuddy.left) / 2 + rcSelf.left;
    852             y = rcSelf.top - (rcBuddy.bottom - rcBuddy.top);
    853         }
    854         else {
    855             x = rcSelf.left - (rcBuddy.right - rcBuddy.left);
    856             y = (infoPtr->rcChannel.bottom + infoPtr->rcChannel.top) / 2 -
    857                 (rcBuddy.bottom - rcBuddy.top) / 2 + rcSelf.top;
    858         }
    859 
    860         SetWindowPos (infoPtr->hwndBuddyLA, 0, x, y, 0, 0,
    861                       SWP_NOZORDER | SWP_NOSIZE);
     928    if (infoPtr->hwndBuddyLA)
     929    {
     930      GetClientRect(infoPtr->hwndBuddyLA,&rcBuddy);
     931      MapWindowPoints(infoPtr->hwndBuddyLA,hwndParent,(LPPOINT)&rcBuddy,2);
     932
     933      if (dwStyle & TBS_VERT)
     934      { //above
     935        x = (infoPtr->rcChannel.right+infoPtr->rcChannel.left)/2-
     936            (rcBuddy.right-rcBuddy.left)/2+rcSelf.left; //CB: right?
     937        y = rcSelf.top-(rcBuddy.bottom-rcBuddy.top);
     938      } else
     939      { //left
     940        x = rcSelf.left-(rcBuddy.right-rcBuddy.left);
     941        y = (infoPtr->rcChannel.bottom+infoPtr->rcChannel.top)/2 -
     942            (rcBuddy.bottom-rcBuddy.top)/2+rcSelf.top; //CB: right?
     943      }
     944
     945      SetWindowPos(infoPtr->hwndBuddyLA,0,x,y,0,0,SWP_NOZORDER | SWP_NOSIZE);
    862946    }
    863947
    864948
    865949    /* align buddy right or below */
    866     if (infoPtr->hwndBuddyRB) {
    867         GetWindowRect (infoPtr->hwndBuddyRB, &rcBuddy);
    868         MapWindowPoints (HWND_DESKTOP, hwndParent, (LPPOINT)&rcBuddy, 2);
    869 
    870         if (dwStyle & TBS_VERT) {
    871             x = (infoPtr->rcChannel.right + infoPtr->rcChannel.left) / 2 -
    872                 (rcBuddy.right - rcBuddy.left) / 2 + rcSelf.left;
    873             y = rcSelf.bottom;
    874         }
    875         else {
    876             x = rcSelf.right;
    877             y = (infoPtr->rcChannel.bottom + infoPtr->rcChannel.top) / 2 -
    878                 (rcBuddy.bottom - rcBuddy.top) / 2 + rcSelf.top;
    879         }
    880         SetWindowPos (infoPtr->hwndBuddyRB, 0, x, y, 0, 0,
    881                       SWP_NOZORDER | SWP_NOSIZE);
     950    if (infoPtr->hwndBuddyRB)
     951    {
     952      GetClientRect(infoPtr->hwndBuddyRB,&rcBuddy);
     953      MapWindowPoints(infoPtr->hwndBuddyRB,hwndParent,(LPPOINT)&rcBuddy,2);
     954
     955      if (dwStyle & TBS_VERT)
     956      { //below
     957        x = (infoPtr->rcChannel.right+infoPtr->rcChannel.left)/2-
     958            (rcBuddy.right-rcBuddy.left)/2+rcSelf.left; //CB: right?
     959        y = rcSelf.bottom;
     960      } else
     961      {
     962        x = rcSelf.right;
     963        y = (infoPtr->rcChannel.bottom+infoPtr->rcChannel.top)/2-
     964            (rcBuddy.bottom-rcBuddy.top)/2+rcSelf.top; //CB: right?
     965      }
     966
     967      SetWindowPos(infoPtr->hwndBuddyRB,0,x,y,0,0,SWP_NOZORDER | SWP_NOSIZE);
    882968    }
    883969}
     
    9251011TRACKBAR_GetBuddy (HWND hwnd, WPARAM wParam, LPARAM lParam)
    9261012{
    927     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    928 
    929     if (wParam)  /* buddy is left or above */
    930         return (LRESULT)infoPtr->hwndBuddyLA;
    931 
    932     /* buddy is right or below */
    933     return (LRESULT) infoPtr->hwndBuddyRB;
     1013    TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
     1014
     1015    if (wParam)
     1016      return (LRESULT)infoPtr->hwndBuddyLA; //left or above
     1017    else
     1018      return (LRESULT)infoPtr->hwndBuddyRB; //right or below
    9341019}
    9351020
     
    11021187TRACKBAR_SetBuddy (HWND hwnd, WPARAM wParam, LPARAM lParam)
    11031188{
    1104     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1189    TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
    11051190    HWND hwndTemp;
    11061191
    1107     if (wParam) {
    1108         /* buddy is left or above */
    1109         hwndTemp = infoPtr->hwndBuddyLA;
    1110         infoPtr->hwndBuddyLA = (HWND)lParam;
    1111 
    1112 //      FIXME (trackbar, "move buddy!\n");
    1113     }
    1114     else {
    1115         /* buddy is right or below */
    1116         hwndTemp = infoPtr->hwndBuddyRB;
    1117         infoPtr->hwndBuddyRB = (HWND)lParam;
    1118 
    1119 //        FIXME (trackbar, "move buddy!\n");
    1120     }
    1121 
    1122     TRACKBAR_AlignBuddies (hwnd, infoPtr);
     1192    if (!(GetParent(lParam) == GetParent(hwnd))) return wParam ? infoPtr->hwndBuddyLA:infoPtr->hwndBuddyRB;
     1193
     1194    if (wParam)
     1195    {
     1196      /* buddy is left or above */
     1197      hwndTemp = infoPtr->hwndBuddyLA;
     1198      infoPtr->hwndBuddyLA = (HWND)lParam;
     1199    } else
     1200    {
     1201      /* buddy is right or below */
     1202      hwndTemp = infoPtr->hwndBuddyRB;
     1203      infoPtr->hwndBuddyRB = (HWND)lParam;
     1204    }
     1205
     1206    TRACKBAR_AlignBuddies(hwnd,infoPtr);
    11231207
    11241208    return (LRESULT)hwndTemp;
     
    14721556TRACKBAR_SetTipSide (HWND hwnd, WPARAM wParam, LPARAM lParam)
    14731557{
    1474     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1558    TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
     1559    DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
    14751560    INT fTemp = infoPtr->fLocation;
    14761561
    1477     infoPtr->fLocation = (INT)wParam;
     1562    if (dwStyle & TBS_VERT)
     1563    {
     1564      if (wParam == TBTS_LEFT || wParam == TBTS_RIGHT) infoPtr->fLocation = (INT)wParam;
     1565    } else
     1566    {
     1567      if (wParam == TBTS_TOP || wParam == TBTS_BOTTOM) infoPtr->fLocation = (INT)wParam;
     1568    }
    14781569
    14791570    return fTemp;
     
    15361627{
    15371628    TRACKBAR_INFO *infoPtr;
    1538 
    1539     infoPtr = (TRACKBAR_INFO *)COMCTL32_Alloc (sizeof(TRACKBAR_INFO));
    1540     SetWindowLongA (hwnd, 0, (DWORD)infoPtr);
     1629    DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
     1630
     1631    infoPtr = (TRACKBAR_INFO *)COMCTL32_Alloc(sizeof(TRACKBAR_INFO));
     1632    SetWindowLongA(hwnd,0,(DWORD)infoPtr);
    15411633
    15421634    /* set default values */
     
    15551647    infoPtr->hwndNotify = GetParent(hwnd);
    15561648
     1649    infoPtr->hwndBuddyLA = 0;
     1650    infoPtr->hwndBuddyRB = 0;
     1651    infoPtr->flags       = 0;
     1652    infoPtr->bFocus      = FALSE;
     1653
     1654    if (dwStyle & TBS_VERT)
     1655    {
     1656      infoPtr->fLocation = (dwStyle & TBS_LEFT) ? TBTS_RIGHT : TBTS_LEFT;
     1657    } else
     1658    {
     1659      infoPtr->fLocation = (dwStyle & TBS_TOP) ? TBTS_BOTTOM : TBTS_TOP;
     1660    }
     1661
    15571662    TRACKBAR_InitializeThumb (hwnd);
    15581663
    15591664    /* Create tooltip control */
    1560     if (GetWindowLongA(hwnd,GWL_STYLE) & TBS_TOOLTIPS)
     1665    if (dwStyle & TBS_TOOLTIPS)
    15611666    {
    15621667      TTTOOLINFOA ti;
     
    15831688      ZeroMemory(&ti,sizeof(TTTOOLINFOA));
    15841689      ti.cbSize   = sizeof(TTTOOLINFOA);
    1585       ti.uFlags   = TTF_TRACK | TTF_CENTERTIP;
     1690      ti.uFlags   = TTF_TRACK | TTF_CENTERTIP | TTF_ABSOLUTE;
    15861691      ti.hwnd     = hwnd;
    15871692      ti.uId      = 0;
    1588       ti.lpszText = "Test"; /* LPSTR_TEXTCALLBACK */
     1693      ti.lpszText = ""; /* LPSTR_TEXTCALLBACK */
    15891694      SetRectEmpty(&ti.rect);
    15901695
    15911696      SendMessageA(infoPtr->hwndToolTip,TTM_ADDTOOLA,0,(LPARAM)&ti);
    1592     }
     1697    } else infoPtr->hwndToolTip = 0;
    15931698
    15941699    return 0;
     
    16101715}
    16111716
    1612 /* pt intialized with cursor position */
    1613 
    16141717static VOID TRACKBAR_CalcToolTipPos(HWND hwnd,DWORD dwStyle,TRACKBAR_INFO *infoPtr,POINT *pt)
    16151718{
    16161719  if (dwStyle & TBS_VERT)
    16171720  {
    1618     pt->x += 5;
    1619     pt->y += 15;
     1721    if (infoPtr->fLocation == TBTS_RIGHT)
     1722    {
     1723      pt->x = infoPtr->rcFullThumb.right;
     1724      pt->y = infoPtr->rcFullThumb.top+(infoPtr->rcFullThumb.bottom-infoPtr->rcFullThumb.top)/2;
     1725    } else
     1726    {
     1727      pt->x = infoPtr->rcFullThumb.left-15; //CB: optimize!
     1728      pt->y = infoPtr->rcFullThumb.top+(infoPtr->rcFullThumb.bottom-infoPtr->rcFullThumb.top)/2;
     1729    }
     1730
    16201731  } else
    16211732  {
    1622     pt->x += 15;
    1623     pt->y += 5;
     1733    if (infoPtr->fLocation == TBTS_TOP)
     1734    {
     1735      pt->x = infoPtr->rcFullThumb.left+(infoPtr->rcFullThumb.right-infoPtr->rcFullThumb.left)/2;
     1736      pt->y = infoPtr->rcFullThumb.top-15; //CB: optimize!
     1737    } else
     1738    {
     1739      pt->x = infoPtr->rcFullThumb.left+(infoPtr->rcFullThumb.right-infoPtr->rcFullThumb.left)/2;
     1740      pt->y = infoPtr->rcFullThumb.bottom;
     1741    }
    16241742  }
     1743  ClientToScreen(hwnd,pt);
    16251744}
    16261745
     
    16651784           char buf[80];
    16661785
    1667            GetCursorPos(&pt);
    16681786           TRACKBAR_CalcToolTipPos(hwnd,dwStyle,infoPtr,&pt);
    16691787           SendMessageA(infoPtr->hwndToolTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y));
     
    17411859
    17421860      infoPtr->flags &= ~TB_DRAG_MODE;
    1743       ReleaseCapture();
     1861
     1862      if (GetCapture() == hwnd)
     1863      {
     1864        NMHDR nmhdr;
     1865
     1866        nmhdr.hwndFrom = hwnd;
     1867        nmhdr.idFrom   = GetWindowLongA(hwnd,GWL_ID);
     1868        nmhdr.code     = NM_RELEASEDCAPTURE;
     1869
     1870        SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)nmhdr.idFrom,(LPARAM)&nmhdr);
     1871
     1872        ReleaseCapture();
     1873      }
     1874
    17441875      TRACKBAR_UpdateThumb(hwnd); //change arrow color
    17451876    }
     
    17481879    {
    17491880      infoPtr->flags &= ~TB_SCROLL_MODE;
    1750       ReleaseCapture();
     1881
     1882      if (GetCapture() == hwnd)
     1883      {
     1884        NMHDR nmhdr;
     1885
     1886        nmhdr.hwndFrom = hwnd;
     1887        nmhdr.idFrom   = GetWindowLongA(hwnd,GWL_ID);
     1888        nmhdr.code     = NM_RELEASEDCAPTURE;
     1889
     1890        SendMessageA(GetParent(hwnd),WM_NOTIFY,(WPARAM)nmhdr.idFrom,(LPARAM)&nmhdr);
     1891
     1892        ReleaseCapture();
     1893      }
     1894
    17511895      KillTimer(hwnd,SCROLL_TIMER_ID);
    17521896    }
     
    19592103      sprintf (buf,"%d",infoPtr->nPos);
    19602104      ti.lpszText = (LPSTR)buf;
    1961       GetCursorPos(&pt);
     2105
     2106      SendMessageA(infoPtr->hwndToolTip,TTM_UPDATETIPTEXTA,0,(LPARAM)&ti);
    19622107      TRACKBAR_CalcToolTipPos(hwnd,dwStyle,infoPtr,&pt);
    1963 
    1964       SendMessageA(infoPtr->hwndToolTip,TTM_UPDATETIPTEXTA,0,(LPARAM)&ti);
    19652108      SendMessageA(infoPtr->hwndToolTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y));
    19662109    }
Note: See TracChangeset for help on using the changeset viewer.