VB6 PictureBox Mouseover - PullRequest
       12

VB6 PictureBox Mouseover

0 голосов
/ 11 ноября 2008

Я использую PictureBox VB6 в моем пользовательском элементе управления. Я установил изображение PictureBox, установил для BorderStyle значение 0 и установил BackColor в BackColor пользовательского элемента управления. Идея в том, что я хочу «плавающую» иконку. Тем не менее, я хочу, чтобы этот значок казался кликабельным при наведении на него курсора мыши.

Два вопроса:

  1. Какие события я использую? MouseMove, кажется, ближе всего к событию "MouseOver". Есть ли более чистые альтернативы?

  2. Как мне изменить стиль? Я перепробовал несколько вещей, но ни одна из них не выглядела правильно.

1 Ответ

2 голосов
/ 11 ноября 2008
  1. MouseMove - правильное событие в VB6. Вам придется проделать определенную работу, чтобы вручную определить, когда мышь чисто покидает клиентскую область. (Мои эксперименты в этом мире, те много лет назад, всегда находили, что реализация этого поведения является хитрой.)

  2. Для изменения стиля я бы рекомендовал использовать GDI для: (a) смещения изображения на один пиксель вверх и влево; (б) нарисуйте линию одного пикселя в ButtonHighlightColor вдоль верхнего и левого краев; и (c) нарисовать линию одного пикселя в ButtonShadowColor вдоль нижнего и правого краев. Это сложнее, чем кажется, особенно в VB6, поэтому в конечном итоге я бы порекомендовал ...

Что вы смотрите на Элементы управления панели инструментов vbAccelerator . Они свободны, и они, вероятно, доставят вас туда, куда вы хотите. (И да, они «классические» VB - то есть VB6.)

...