Я никогда не делал этого, но я бы начал с просмотра местоположения щелчка мышью. Затем я мог бы выяснить, как далеко на текущем экстенте трекбара находился щелчок, и установить местоположение трекера в этом месте.
Я бы начал с изучения переопределения элемента управления и управления функциями событий, связанных с мышью (OnMouseDown()
, например). Обратите внимание, что в некоторых случаях может быть важно вызвать реализацию переопределенной функции базового класса, не забывайте рассматривать ее в каждом конкретном случае. (Я только что столкнулся с этим, так что это свежо в моей памяти.)
Обратите внимание, что таким образом вы должны изменять поведение стандартных элементов управления только в том случае, если у вас есть очень веская причина. Они стандартные, потому что ведут себя предсказуемым образом во многих сотнях и тысячах программ. Если заставить что-то вести себя по-другому, просто ваша программа может нарушить Принцип удивления аренды . Единственный трекбар, о котором я могу думать, я ожидаю, что вы будете вести себя так, как вы описываете, для какого-то медиаплеера.
Изменить:
Исходя из вашего комментария, да, я думаю, у вас есть веская причина. :)