Tracking Windows TrackBars is crazy !

Just starting out? Need help? Post your questions and find answers here.
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Tracking Windows TrackBars is crazy !

Post by Blue »

It's a universal convention that numbers are represented incrementing along a line from LEFT to RIGHT, as
0,1,2,3, ... ,n, n+1,n+2, ...
That convention is not only very old, it's also very intuitive and simple.
The corresponding computer convention is the TrackBar, which also represents values increasing and decreasing along a line.

On a horizontal TrackBar, values are expected to increase from small to large as the Slider moves towards the right (either by pressing the Right-Arrow key, or by sliding it with the mouse). Conversely, values must decrease as the Slider moves left. That works exactly as expected in Windows. Easy to track too. Intuitive to use.

On a vertical TrackBar, one similarly expects values to increase as the Slider moves up, and to decrease as it moves down. Small values at the bottom, larger ones at the top. The Up-arrow will show an increase, the Down-arrow a decrease. Again, simple and intuitive, isn't it ? Of course...

But not for Windows. :roll: Ahhhhhh!!!! How could they screw up something so simple?
Run the PB Windows applet below, and see for yourself how the vertical TrackkBar throws the convention out the window (so to speak :D ).

PS: my many thanks to Sparkie for an example code (which i just can't find any more!) that made me find my way around this.

Code: Select all

;; 
;; Blue -- September 2009
;; 
;; source: http://www.purebasic.fr/english/viewtopic.php?f=13&t=39184
;; 
EnableExplicit

#faux  = 0
#vrai  = ~#faux

Enumeration 
  #htrack
  #hTxt
  #vtrack
  #vTxt
  #cmdOK
  #cmdCancel
  #cmdReset
EndEnumeration

#winColor = #Black
#txColor   = #Yellow 

;- variables globales
Global bgColor = CreateSolidBrush_(#winColor)
Global hTrack_ID, vTrack_ID
Global endScroll_done

Procedure WindowProc(hWnd, msg, wParam, lParam) 
  Define gadget, sPos, ePos 

  Select msg 

     Case #WM_CTLCOLORSTATIC 
        SetBkMode_(wParam,#TRANSPARENT) 
        SetTextColor_(wParam, #txColor) 
        ProcedureReturn bgColor

    Case #WM_HSCROLL, #WM_VSCROLL 
      If lParam = hTrack_ID
         gadget = #hTrack
      Else
         gadget = #vTrack
      EndIf

      sPos = GetGadgetData(gadget)
      ePos = GetGadgetState(gadget)

      Select wParam & $FFFF 
        Case #SB_THUMBPOSITION
          Debug "------- #SB_THUMBPOSITION message "
          If Not endScroll_done
              Debug "        mouse wheel  "
              SetGadgetData(gadget, epos) ;; because not done in #SB_ENDSCROLL
          EndIf
          SetGadgetText(gadget+1, "from " + Str(sPos) + "  to " + Str(ePos)) 
          endScroll_done = #faux

        Case #SB_ENDSCROLL
          SetGadgetData(gadget, epos) ; end position becomes next start position 
          SetGadgetText(gadget+1, "From " + Str(sPos) + "  to " + Str(ePos)) 
          Debug "#SB_ENDSCROLL  wparam "+ Hex(wparam)  + "   " + Str(sPos) + "  " + Str(ePos)
          endScroll_done = #vrai

        Case  #SB_THUMBTRACK , #SB_LINELEFT, #SB_PAGELEFT, #SB_LINERIGHT, #SB_PAGERIGHT
          SetGadgetText(gadget+1, "Start = " + Str(sPos) + ": now at " + Str(ePos)) 
;         Debug "  s: " + Str(spos) + ",  e: " + Str(ePos)

      EndSelect ;; wparam
    EndSelect   ;; msg      

  ProcedureReturn #PB_ProcessPureBasicEvents 
EndProcedure 

Procedure InitDialogue(winW,winH)

  If Not OpenWindow(0,#PB_Ignore,0,winW,winH,"Tracking Values on TrackBars",#PB_Window_SystemMenu) 
    ProcedureReturn 0
  EndIf
  
  SetWindowColor(0, #winColor)
  SetWindowCallback(@WindowProc())
  
  Define gadget, gX, gY, gW, gH
  
  gH = 20
  gW = 60
  gY = winH - gH - 10 
  gX = winW - gW - 10 
  gadget = #cmdOK
    ButtonGadget(gadget,gX,gY,gW,gH," Quit ") 

  gX - 80 - 6
  gadget = #cmdReset
    ButtonGadget(gadget,gX,gY,80,20,"Reset") 

  gH = 200
  gW = 32
  gY = 10 
  gX = 10 
  
  gadget = #vtrack
    vTrack_ID = TrackBarGadget(gadget, gX,gY, gW,gH, 1,10, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical) 
    SetGadgetData(gadget,1)    ; starting position of the thumb in the trackBar
    SetActiveGadget(#vtrack)    ; forces Windows to redraw the object
  
  gX + gW + 4
    TextGadget(gadget+1, gX,gY+gH-20-20, 150,20, "Vertical trackBar at 1")
  
  gH = gW
  gW = GadgetHeight(gadget) * 1.2
  gadget = #htrack
    hTrack_ID = TrackBarGadget(gadget, gX,gY, gW,gH, 1,10, #PB_TrackBar_Ticks) 
    SetGadgetData(gadget,1)    ; starting position of the thumb in the trackBar
    TextGadget(gadget+1, gX+10,gY+gH+4, 150,20, "Horizontal trackBar at 1") 

    ProcedureReturn #vrai
EndProcedure

Procedure Reset()
  SetGadgetText(#htrack+1, "Horizontal trackBar at 1") 
  SetGadgetData(#htrack,1)
  SetGadgetState(#htrack,1)
  SetGadgetState(#vtrack,1)
  SetGadgetData(#vtrack,1)
  SetGadgetText(#vtrack+1, "Vertical trackBar at 1") 
  SetActiveGadget(#vtrack)  ; forces Windows to redraw the object
EndProcedure

;;; ==================================================
If InitDialogue(320,220)
  Define gadget, event, evType, evWindow
  Repeat
  ;-{ boucle des évènements }
  
    event    = WaitWindowEvent()
    evType   = EventType()
    evWindow = EventWindow()
    gadget   = EventGadget()
  
    Select event
      Case #PB_Event_CloseWindow: Break ;
  
      Case #PB_Event_Gadget
        Select gadget
    	    Case #cmdOK: Break
    	    Case #cmdCancel: Break
    	    Case #cmdReset: Reset()
        EndSelect
  
  ;     Default
  ;       If event : Debug event : EndIf
    EndSelect
  ;}
  ForEver
EndIf
;;; ==================================================

If bgColor
  DeleteObject_(bgColor) 
EndIf

End
Originally, i was going to post this as a PB bug. I thought the TrackBar gadget implementation was at fault.
But it's NOT a PB problem. In fact it's only a programming problem :D

A solution, simple and effective, is presented in TrackBar : mathematically correct scrolling !

  
Last edited by Blue on Sun Oct 04, 2009 4:21 pm, edited 5 times in total.
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Re: in Windows, tracking TrackBars is crazy !

Post by Trond »

On a vertical TrackBar, one similarly expects values to increase as the Slider moves up, and to decrease as it moves down. Small values at the bottom, larger ones at the top. The Up-arrow will show an increase, the Down-arrow a decrease.
Which is exactly what happens. So where is the problem?
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Re: in Windows, tracking TrackBars is crazy !

Post by Blue »

Trond wrote:Which is exactly what happens.
At first glance, yes. But ...

(1) Right arrow :
     purpose: move from smaller values to larger ones
     hTrack: does exactly that.
     vTrack: moves from larger values to smaller ones
     (conversely for Left arrow)

(2) Home key :
     purpose: move to the origin, i.e. 1 on a 1-10 scale as in the example code, for instance
     hTrack: does exactly that.
     vTrack: moves to the largest value, not to the smallest one

(3) Page down key:
     purpose: move to the origin in increments of one
     hTrack: moves to the largest value, not to the smallest one.
     vTrack: does what is expected
(corrected following Rescator's observation [see below] )

(4) Up Arrow:
     purpose: move from small to large value
     hTrack: moves the slider towards smaller values !!!
     vTrack: does exactly that
     (Conversely for the Down key)

In short, Windows does not report values in a consistent way with the TrackBar.
If an arrow key slides towards larger values with the horizontal TrackBar, you expect it to do the same on the vertical one, don't you ?

I certainly do.
Last edited by Blue on Mon Sep 21, 2009 10:36 pm, edited 1 time in total.
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
User avatar
Demivec
Addict
Addict
Posts: 4270
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Re: in Windows, tracking TrackBars is crazy !

Post by Demivec »

Blue wrote:In short, Windows does not report values in a consistent way with the TrackBar.
If an arrow key slides towards larger values with the horizontal TrackBar, you expect it to do the same on the vertical one, don't you ?
There are actually at least 2 standards regarding this (I seem to share yours).

Windows uses the perspective that seems to be based on some basic standards from the past. The slider moves when you press the keys. It's the screen movement that is being kept consistent. How do the keys relate to values. If you wanted to keep the values changing consistently the vertical trackbar would have the highest values at the bottom. That would be consistent with the numbering of pages in a text document for instance. You would scroll down with the page-down or right-arrow key to get to higher page numbers. It however doesn't match up with traditional progress-bars used in the real world. Windows chose to have the keys operate consistently with the visual representations as with other applications but to have the values operate consistently with the real world.

The solution would be to have a flag that somehow reverses things. There is one but it doesn't reverse anything (#TBS_REVERSED). :shock:

The flag basically only indicates that things should be reversed visually/logically but in reality leaves the low values at the bottom and the higher ones at the top. You have to manual read and then flip the values by using something like (flippedValue = maxValue - value). There is an additional flag to reverse the keyboard input that actually functions (#TBS_DOWNISLEFT). These flags can be used when language or custom dictate a change in what is considered normal. :wink:

I made a graphical slider bar that didn't have a visual thumb to slide, you simply clicked or dragged the mouse on it to the point you wanted on the bar and it colored the bar in to show the setting. It also allowed keyboard input and these limitations in the way the windows trackbar operated irritated me as they did you. I implemented the flag for reversal to actually reverse things visually and included the same for keyboard input separately. 8)

@Edit: #TBS_DOWNISLEFT, like #TBS_REVERSED, does not cause any actual effect either. It can still be used as a flag for customized code.
Last edited by Demivec on Wed Sep 23, 2009 11:36 pm, edited 1 time in total.
User avatar
Rescator
Addict
Addict
Posts: 1769
Joined: Sat Feb 19, 2005 5:05 pm
Location: Norway

Re: in Windows, tracking TrackBars is crazy !

Post by Rescator »

Blue wrote:(3) Page down key:
     vTrack: moves to the largest value, not to the smallest one
Really?
Here page down moves it down, hence towards the smaller value.
This is on Vista though. Or did you mean the other way around by any chance?

As far as I can tell, at least on Vista is that they both behave as expected.
a Trackbar is not necessarily value bound, a user may never see the actual value, or as a programmer you direction may be opposite of the actual value.

Take my GridStream Player for example, it allows you to set the desired FPS of the loudness meter, but since the trackbar do not accept floats the value range it's give is in ms, and a low ms means a hig FPS and a high ms means a low FPS, so the horizontal trackbar is in reverse in relation to the actual numeric underneath it.
The user is shown a FPS float value instead.
In an older version of the player I used to have it the other way around, left being highest FPS and right being lowest. (matching the low ms to high ms numeric range) ,
but a few users found it counter-intuitive, so I reversed the treatment of the trackbar results.

Personally I find it intuitive that up is highest value or right is highest value.
Take volume sliders for example.
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Re: in Windows, tracking TrackBars is crazy !

Post by Blue »

@ Trond :
And i was forgetting the worse: With a wheel mouse,
Horizontal TrackBar: you move towards lesser values by scrolling UP !!!
  Vertical  TrackBar : as expected, the slider moves towards higher values as you scroll UP.

@ Demivec :
Demivec wrote:¨... The solution would be to have a flag that somehow reverses things. ...
That's what i ended up having to do. Which is also what got me started into exploring the behaviour of this Control ... euh... sorry! gadget.
I just find it annoying as hell that we have to do all kinds of intellectual gymnastics simply because someone involved at the heart of a system can't grasp an abstract concept. :shock:

And otice that, in the case of the wheel on a mouse, you can't do anything bacause you can't intercept the bloody messages from Windows. (Correct that: I don't know how to intercept those messages... :roll: )

Thanks for the input, Demivec .
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Re: in Windows, tracking TrackBars is crazy !

Post by Blue »

Rescator wrote:
Blue wrote:(3) Page down key:
     vTrack: moves to the largest value, not to the smallest one
Really?
Here page down moves it down, hence towards the smaller value.
This is on Vista though.
Ah, very good and interesting point, Rescator.

It didn't occur to me, prior to your input, but things could indeed be different with other versions of Windows.
It seems obvious now, :roll: but it never occured to me to consider that. :oops:

All my tests and "discoveries" have been made on Windows 7.

However, you're Right on: I mixed things up when talking about the Page DOWN key . :oops:
It's the hTrackBar that is behaving unexpectedly, not the vertical one.
In vTrack, it moves down towards low values (cool!), but in hTrack, it moves UP towards high values !!! (not so ok, heh ?)
I corrected my comment in the referenced message, so that, now, you look like you don't know what you're talking about. :wink:
Many thanks.


PS:
Rescator wrote:Personally I find it intuitive that up is highest value or right is highest value.
Take volume sliders for example.
Me too. Which is exactly what i'm saying and why i brougth this up !


    
Last edited by Blue on Wed Sep 23, 2009 9:02 pm, edited 1 time in total.
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Re: in Windows, tracking TrackBars is crazy !

Post by Trond »

Blue wrote:
Trond wrote:Which is exactly what happens.
If an arrow key slides towards larger values with the horizontal TrackBar, you expect it to do the same on the vertical one, don't you ?

I certainly do.
Absolutely not in any way. The arrows are tied to the direction you want to move the button, not the value. If Page DOWN moved the trackbar button UP I'd be pretty raging mad. You're thinking about this the wrong way. Windows consistently maps arrows and home/end/pgup/pgdown key to the correct directions. The value has nothing to do with it.
@ Trond :
And i was forgetting the worse: With a wheel mouse,
Horizontal TrackBar: you move towards lesser values by scrolling UP !!!
Vertical TrackBar : as expected, the slider moves towards higher values as you scroll UP.
No, you're just misunderstanding scrolling and keyboard movement in general. What you have is a button on a band, Windows provides automatic support for moving this button. This works correctly.

In addition, the following rules apply everywhere in normal GUIs for consistency:
If left is not possible, it is mapped to up.
If up is not possible, it is mapped to left.
If right is not possible, it is mapped to down.
If down is not possible, it is mapped to right.
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Re: in Windows, tracking TrackBars is crazy !

Post by Blue »

Trond wrote:[...] Absolutely not in any way. [...]
Sure, but we're not talking about the same thing, are we ?
You're talking about scrolling pages.
I'm talking about keeping track of values on a TrackBar.

For scrolling pages, or scrolling through text within a page or within a String Control, no problem. The current behaviour is as good as can be. I think i understand that. That's why i titled the topic "Tracking TrackBars", not "Using Arrow Keys". :D
Trond wrote:... If Page DOWN moved the trackbar button UP I'd be pretty raging mad.
:roll: I think i'd be too. So i'm not suggesting anything that ridiculous. But since Page DOWN moves down towards the origin on the vertical TBar, i think it should do the same on the HBar. Right now, Page DOWN moves to the right (high values) on an HBar. To my way of thinking, that's not down, but up.
Trond wrote:... you're just misunderstanding scrolling and keyboard movement in general.
Really ? :shock:
I understand that kbd keys have been historically geared to page scrolling and that this "vocation" screws up things when it comes to TrackBars.

Run the demo provided above. It's not scrolling pages, but simply showing values increasing or decreasing (... on a graph: it's part of an app illustrating math functions). I think it illustrates how the slider movements are counter-intuitive in the context of TrackBars and values.

Ultimately, it does not matter which way the cursor keys move the slider. What matters is that the movements be consistent between vertical and horizontal Trackbars. I don't think they are.

But you're very knowledgeable about Windows: would you tell me ( better: show me !) how to reverse the built-in behaviour of, for instance, the Home key on a horizontal trackbar, while keeping it as is on the vertical one ?
 
 
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Re: in Windows, tracking TrackBars is crazy !

Post by Blue »

Demivec wrote:There is an additional flag to reverse the keyboard input that actually functions (#TBS_DOWNISLEFT). :wink:
You're a full vec to me, Demivec. :D
I looked up the #TBS_DOWNISLEFT flag you mention... and it's exactly the flag of my dreams. :oops:

Now all i have to do is figure out how to use it.
If it's simple, i'll probably get it...

Thank you.

PS: Do you know the numerical value of this flag ? It's not yet integrated into PB.
Last edited by Blue on Wed Sep 23, 2009 9:48 pm, edited 1 time in total.
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Re: in Windows, tracking TrackBars is crazy !

Post by Trond »

Ultimately, it does not matter which way the cursor keys move the slider. What matters is that the movements be consistent between vertical and horizontal Trackbars. I don't think they are.
The movement is actually consistent. Only the values are inconsistent.

To make a vertical trackbar, imagine that the rightmost part of a horizontal trackbar swings down. So the lowest part of a vertical trackbar corresponds to the rightmost part of the horizontal trackbar. When you think about it this way, the movement works correctly. However, the numeric range is flipped on vertical trackbars. This makes everything seem weird.
But you're very knowledgeable about Windows: would you tell me ( better: show me !) how to reverse the built-in behaviour of, for instance, the Home key on a horizontal trackbar, while keeping it as is on the vertical one ?
That would be easy, but as I said: the home key normally moves to the left (or top left) and making the home key move to the end of the trackbar and the end key move to the start of the trackbar would be severely annoying to your users.

If you do it like this, everything should be consistent, right?

Code: Select all

OpenWindow(0, 0, 0, 512, 384, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)

TrackBarGadget(0, 10, 10, 40, 100, 0, 100, #PB_TrackBar_Vertical)
TextGadget(1, 100, 10, 100, 25, "100")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      SetGadgetText(1, Str(100-GetGadgetState(EventGadget())))
    Case #PB_Event_CloseWindow
      Break
  EndSelect
ForEver
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Re: in Windows, tracking TrackBars is crazy !

Post by Blue »

Trond wrote: [...] This makes everything seem weird. [...]
Right on baby! (as my numerous girlfriends say to me daily)
That sums up my problem pretty nicely :D
Thanks for the code. I'll try it, keeping in mind your reminders about not disrupting users' habits too much.

UPDATE: I ran your code, Trond, but it does not address what is bugging me.
I'm already implementing what you suggest. I don't have any problems with the mathematical manipulations involved. I'm up-ending the values behind the scene and adapting the result for my needs. Simple.

Not so simple, however, (at least for me) is matching the on-screen visual position of the slider with the manipulation of the values.

For instance, i want that when you press
1. DOWN key:
   VTrack should move DOWN towards 1 == OK
  HTrack should move LEFT towards 1 == NOT OK (currently goes right towards max value :( )
2. HOME key:
VTrack should move DOWN to the origin == NOT OK (currently moves UP to max value :( )
HTrack: it should move RIGHT to the origin == OK

and so on for any key that causes a change in the position of the Thumb Slider on a TrackBar.
(I'm not talking about a system-wide change here, just something for this humble applet.)

It really boils down to either finding a way to use Demivec's suggested #TBS_DOWNISLEFT flag (where do i find its numerical value? ) and letting Windows re-arrange things for me (I'd love that!!!), or intercepting the slider before Windows moves it and then placing it where i see fit. This last manipulations has me stumped !

   
Last edited by Blue on Wed Sep 23, 2009 10:42 pm, edited 1 time in total.
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Re: Tracking Windows TrackBars is crazy !

Post by Trond »

I actually made a code to reverse the keys, just to see if I could. I strongly advise against including this in an actual program. It feels all wrong. When trying it, I actually get dizzy. :shock: You can learn some useful techniques from this code, though.

Code: Select all

Procedure Callback(WindowID, Message, wParam, lParam)
  Protected Result
  Select Message
    Case #WM_KEYDOWN
      Select wParam
        Case #VK_HOME
          wParam = #VK_END
        Case #VK_END
          wParam = #VK_HOME
        Case #VK_LEFT
          wParam = #VK_RIGHT
        Case #VK_RIGHT
          wParam = #VK_LEFT
      EndSelect
  EndSelect
  OldProc = GetWindowLong_(WindowID, #GWL_USERDATA)
  Result = CallWindowProc_(OldProc, WindowID, Message, wParam, lParam)
  ProcedureReturn Result
EndProcedure

Procedure InvertTrackbarGadget(Gadget)
  OldProc = GetWindowLong_(GadgetID(Gadget), #GWL_WNDPROC)
  SetWindowLong_(GadgetID(Gadget), #GWL_USERDATA, OldProc)
  SetWindowLong_(GadgetID(Gadget), #GWL_WNDPROC, @Callback())
EndProcedure

OpenWindow(0, 0, 0, 512, 384, "i FeEl DiZZy", #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
TextGadget(1, 100, 10, 100, 25, "0")

; Two inverted trackbar gadgets, just to test that the code works for multiple gadgets
TrackBarGadget(0, 10, 10, 40, 100, 0, 100, #PB_TrackBar_Vertical)
TrackBarGadget(2, 10, 110, 40, 100, 0, 100, #PB_TrackBar_Vertical)
TextGadget(1, 100, 10, 100, 25, "0")
InvertTrackbarGadget(0)
InvertTrackbarGadget(2)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      SetGadgetText(1, Str(GetGadgetState(EventGadget())))
    Case #PB_Event_CloseWindow
      Break
  EndSelect
ForEver
User avatar
Blue
Addict
Addict
Posts: 967
Joined: Fri Oct 06, 2006 4:41 am
Location: Canada

Re: Tracking Windows TrackBars is crazy !

Post by Blue »

Trond wrote:I actually made a code to reverse the keys, just to see if I could.
:shock:
You're too quick. My fingers can't keep up, to say nothing of my dyslexic brain.
I was just finishing the previous answer as you were posting.

Thanks. I'll try your new concoction.

UPDATE
"I feel dizzy" ?? Sensitive man, you are. But surely you can see the need for this kind of modif in a mathematical application.
At first glance, your reversal code appears to be pointing in the direction i'm seeking. I'll examine the code carefully.
Many thanks again.

TBS_DOWNISLEFT = 0x400 (source: http://www.autohotkey.com/docs/misc/Styles.htm)
But they also say it has absolutely no effect on the control...
PB Forums : Proof positive that 2 heads (or more...) are better than one :idea:
User avatar
Demivec
Addict
Addict
Posts: 4270
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Re: Tracking Windows TrackBars is crazy !

Post by Demivec »

Blue wrote:TBS_DOWNISLEFT = 0x400 (source: http://www.autohotkey.com/docs/misc/Styles.htm)
But they also say it has absolutely no effect on the control...
My apologies for misrepresenting that. I had implemented that functionality in the code I referred to in the previous post because I had wanted that same functionality too. I think I will place the task of adding that taskbar functionality to my spare-time project list (already in the thousands) :wink:.

I edited my original post to reflect the correction.
Post Reply