comctl32: Update ticks on TBM_SETRANGEMAX.
This commit is contained in:
parent
668e44ab26
commit
abde0c21e3
|
@ -982,6 +982,43 @@ static void test_initial_state(void)
|
|||
expect(-1, ret);
|
||||
ret = SendMessage(hWnd, TBM_GETTICPOS, 0, 0);
|
||||
expect(-1, ret);
|
||||
ret = SendMessage(hWnd, TBM_GETRANGEMIN, 0, 0);
|
||||
expect(0, ret);
|
||||
ret = SendMessage(hWnd, TBM_GETRANGEMAX, 0, 0);
|
||||
expect(100, ret);
|
||||
|
||||
ret = SendMessage(hWnd, TBM_SETRANGEMAX, TRUE, 200);
|
||||
expect(0, ret);
|
||||
|
||||
ret = SendMessage(hWnd, TBM_GETNUMTICS, 0, 0);
|
||||
expect(2, ret);
|
||||
|
||||
DestroyWindow(hWnd);
|
||||
}
|
||||
|
||||
static void test_TBS_AUTOTICKS(void)
|
||||
{
|
||||
HWND hWnd;
|
||||
int ret;
|
||||
|
||||
hWnd = create_trackbar(TBS_AUTOTICKS, hWndParent);
|
||||
|
||||
ret = SendMessage(hWnd, TBM_GETNUMTICS, 0, 0);
|
||||
expect(2, ret);
|
||||
ret = SendMessage(hWnd, TBM_GETTIC, 0, 0);
|
||||
expect(-1, ret);
|
||||
ret = SendMessage(hWnd, TBM_GETTICPOS, 0, 0);
|
||||
expect(-1, ret);
|
||||
ret = SendMessage(hWnd, TBM_GETRANGEMIN, 0, 0);
|
||||
expect(0, ret);
|
||||
ret = SendMessage(hWnd, TBM_GETRANGEMAX, 0, 0);
|
||||
expect(100, ret);
|
||||
|
||||
ret = SendMessage(hWnd, TBM_SETRANGEMAX, TRUE, 200);
|
||||
expect(0, ret);
|
||||
|
||||
ret = SendMessage(hWnd, TBM_GETNUMTICS, 0, 0);
|
||||
expect(201, ret);
|
||||
|
||||
DestroyWindow(hWnd);
|
||||
}
|
||||
|
@ -1031,6 +1068,7 @@ START_TEST(trackbar)
|
|||
test_tic_placement(hWndTrackbar);
|
||||
test_tool_tips(hWndTrackbar);
|
||||
test_unicode(hWndTrackbar);
|
||||
test_TBS_AUTOTICKS();
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCE);
|
||||
DestroyWindow(hWndTrackbar);
|
||||
|
|
|
@ -1176,8 +1176,10 @@ TRACKBAR_SetRange (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lRange)
|
|||
|
||||
|
||||
static inline LRESULT
|
||||
TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lMax)
|
||||
TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL redraw, LONG lMax)
|
||||
{
|
||||
BOOL changed = infoPtr->lRangeMax != lMax;
|
||||
|
||||
infoPtr->lRangeMax = lMax;
|
||||
if (infoPtr->lPos > infoPtr->lRangeMax) {
|
||||
infoPtr->lPos = infoPtr->lRangeMax;
|
||||
|
@ -1187,7 +1189,10 @@ TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lMax)
|
|||
infoPtr->lPageSize = (infoPtr->lRangeMax - infoPtr->lRangeMin) / 5;
|
||||
if (infoPtr->lPageSize == 0) infoPtr->lPageSize = 1;
|
||||
|
||||
if (fRedraw) TRACKBAR_InvalidateAll(infoPtr);
|
||||
if (changed && (infoPtr->dwStyle & TBS_AUTOTICKS))
|
||||
TRACKBAR_RecalculateTics (infoPtr);
|
||||
|
||||
if (redraw) TRACKBAR_InvalidateAll(infoPtr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue