
		        Trackbar 控件之使用方法

                                    作者: 郑怡然

    Trackbar 控件的风格和使用与Win32 SDK中的Trackbar控件相似。
可以用鼠标左键单击或拖动，也可以使用方向键，PageUp,PageDown,Home,End
键控制。风格选择包括是否有边框（TBS_BORDER)，有文字标记(TBS_TIP)，
是否竖直(TBS_VERTICAL)，滑块位置改变时是否通知父窗口(TBS_NOTIFY)等。
    在应用程序中使用Trackbar控件，如果定义的控件窗口很小，控件中的
滑块将按比例缩小，如果控件窗口很大，滑块也会按比例增大，但不会超过
预先定义的最大高度(SliderMaxHeight)和宽度(SliderMaxWidth)，
这些定义可以改变。滑块太小会影响外观。
    文字标记风格只有在没有设置竖直风格时才有效，因为竖直时文字标记
放哪儿都不好看。设置TBS_NOTIFY风格后，一旦滑块位置改变，控件会发通知
消息给父窗口。
    控件消息基本和Win32 SDK一样，都通过消息处理函数返回值取回单个
数值参数，通过wParam取回单个指针参数,设置单个参数时用wParam变量，
同时设置或取回两个参数时用wParam和lParam两个参数。而且minigui的
其他控件也采取这样的方法。但我觉得最好都通过指针形式的参数返回数值，
SendMessage的返回值应该只代表错误状态，这样逻辑比较清晰一些。
    控件数据结构见trackbar.h，控件风格和消息定义见control.h中的
相关部分。
    增添了焦点框。
    
    		Trackbar Control Helpfile
一 窗口风格

#define	TBS_NOTIFY		一旦滑块位置改变,通知父窗口;
#define TBS_VERTICAL		Trackbar竖直放置;
#define TBS_BORDER		有一个边框,使Trackbar有3D效果;
#define TBS_TIP			有文字标记,包括起始标记,结束标记和滑块当前位置值,
				只有在没有设置TBS_VERTICAL时有效;
#define TBS_FOCUS		标志本Trackbar获得焦点,控件自身使用，用户不要设置;
#define TBS_DRAGGED		标志本Trackbar正在被拖动,控件自身使用，用户不要设置;
#define TBS_MOUSEDOWN		标志本Trackbar可以被拖动,控件自身使用，用户不要设置;

二 消息处理
原则是通过消息处理函数返回值取回单个数值参数，通过wParam取回单个指针参数,
设置单个参数时用wParam变量，同时设置或取回两个参数时用wParam和lParam两个参数。

TBM_SETRANGE			设置滑块移动范围，即同时设置最大值和最小值；	
	wParam = (WPARAM) nMax; 
    	lParam = (LPARAM) nMin; 
TBM_SETMIN			设置滑块移动范围的最小值；			
	wParam = (WPARAM) nMin; 
	lParam = 0; 
TBM_GETMIN			返回滑块移动范围的最小值；
	wParam = 0; 
	lParam = 0; 
TBM_SETMAX			设置滑块移动范围的最大值；
	wParam = (WPARAM) nMax; 
	lParam = 0; 
TBM_GETMAX			返回滑块移动范围的最大值；
	wParam = 0; 
	lParam = 0; 
TBM_SETPOS			设置滑块位置；
	wParam = (WPARAM) nPos; 
	lParam = 0; 
TBM_GETPOS			返回滑块的当前位置值；
	wParam = 0; 
	lParam = 0; 
TBM_SETLINESIZE			设置单击方向键时滑块移动的距离； 
	wParam = (WPARAM) nLineSize; 
	lParam = 0; 
TBM_GETLINESIZE 		返回单击方向键时滑块移动的距离； 
	wParam = 0; 
	lParam = 0; 
TBM_SETPAGESIZE 		设置单击PageDown，PageUp时滑块移动的距离；
	wParam = (WPARAM) nPageSize; 
	lParam = 0; 
TBM_GETPAGESIZE 		返回单击PageDown，PageUp时滑块移动的距离；
	wParam = 0; 
	lParam = 0; 
TBM_SETSTARTTIP			设置起始文字标记，即滑块移动范围最小值处的文字标记；
	wParam = (WPARAM) psStartTip;		参数应是字符串指针
	lParam = 0; 
TBM_SETENDTIP			设置结束文字标记，即滑块移动范围最大值处的文字标记；
	wParam = (WPARAM) psEndTip;		参数应是字符串指针 
	lParam = 0; 
TBM_GETTIP			取回文字标记；
	wParam = (WPARAM) psStartTip;		参数应是字符串指针 
	lParam = (LPARAM) psEndTip;		参数应是字符串指针 
TBM_SETTICKFREQ			设置刻度重复频率，即隔多少距离画一个刻度；
	wParam = (WPARAM) nTickFreq; 
	lParam = 0; 
TBM_GETTICKFREQ			返回刻度重复频率；
	wParam = 0; 
	lParam = 0; 
	
三 通知消息

TBN_CHANGE			通知父窗口Trackbar的滑块位置发生改变;
TBN_REACHMIN			通知父窗口Trackbar的滑块到达最小值,
				父窗口在收到这个通知消息之前会收到TBN_CHANGE通知消息;
TBN_REACHMAX			通知父窗口Trackbar的滑块到达最大值,
				父窗口在收到这个通知消息之前会收到TBN_CHANGE通知消息。

