windows-nt/Source/XPSP1/NT/multimedia/media/avi/mciwnd/tracki.h
2020-09-26 16:20:57 +08:00

79 lines
2.6 KiB
C

/*
TrackBar
All the useful information for a trackbar.
*/
typedef struct {
HWND hwnd; // our window handle
HDC hdc; // current DC
LONG lLogMin; // Logical minimum
LONG lLogMax; // Logical maximum
LONG lLogPos; // Logical position
LONG lSelStart; // Logical selection start
LONG lSelEnd; // Logical selection end
UINT wThumbWidth; // Width of the thumb
UINT wThumbHeight; // Height of the thumb
int iSizePhys; // Size of where thumb lives
RECT rc; // track bar rect.
RECT Thumb; // Rectangle we current thumb
DWORD dwDragPos; // Logical position of mouse while dragging.
UINT Flags; // Flags for our window
int Timer; // Our timer.
UINT Cmd; // The command we're repeating.
int nTics; // number of ticks.
PDWORD pTics; // the tick marks.
} TrackBar, *PTrackBar;
// Trackbar flags
#define TBF_NOTHUMB 0x0001 // No thumb because not wide enough.
#define TBF_SELECTION 0x0002 // a selection has been established (draw the range)
/*
useful constants.
*/
#define REPEATTIME 500 // mouse auto repeat 1/2 of a second
#define TIMER_ID 1
#define GWW_TRACKMEM 0 /* handle to track bar memory */
#define EXTRA_TB_BYTES sizeof(PTrackBar) /* Total extra bytes. */
/*
Useful defines.
*/
#ifdef WIN32
#define TrackBarCreate(hwnd) SetWindowLong(hwnd,GWW_TRACKMEM,(LONG)LocalAlloc(LPTR,sizeof(TrackBar)))
#define TrackBarDestroy(hwnd) LocalFree((HLOCAL)GetWindowLong(hwnd,GWW_TRACKMEM))
#define TrackBarLock(hwnd) (PTrackBar)GetWindowLong(hwnd,GWW_TRACKMEM)
#else
#define TrackBarCreate(hwnd) SetWindowWord(hwnd,GWW_TRACKMEM,(WORD)LocalAlloc(LPTR,sizeof(TrackBar)))
#define TrackBarDestroy(hwnd) LocalFree((HLOCAL)GetWindowWord(hwnd,GWW_TRACKMEM))
#define TrackBarLock(hwnd) (PTrackBar)GetWindowWord(hwnd,GWW_TRACKMEM)
#endif
/*
Function Prototypes
*/
static void NEAR PASCAL DoTrack(PTrackBar, int, DWORD);
static WORD NEAR PASCAL WTrackType(PTrackBar, LONG);
static void NEAR PASCAL TBTrackInit(PTrackBar, LONG);
static void NEAR PASCAL TBTrackEnd(PTrackBar, LONG);
static void NEAR PASCAL TBTrack(PTrackBar, LONG);
static void NEAR PASCAL DrawThumb(PTrackBar);
static HBRUSH NEAR PASCAL SelectColorObjects(PTrackBar, BOOL);
static void NEAR PASCAL SetTBCaretPos(PTrackBar);
extern DWORD FAR PASCAL lMulDiv32(DWORD, DWORD, DWORD);