VB6 PictureBox Mouseover
-
07-07-2019 - |
Вопрос
Я использую PictureBox VB6 в своем пользовательском элементе управления. Я установил изображение PictureBox, установил для BorderStyle значение 0 и установил для BackColor значение BackColor пользовательского элемента управления. Идея заключается в том, что я хочу "плавающий" значок. Тем не менее, я хочу, чтобы этот значок казался кликабельным при наведении на него курсора мыши. Р>
Два вопроса:
<Ол>Какие события я использую? MouseMove, по-видимому, наиболее близок к «MouseOver» событие. Есть ли более чистые альтернативы?
Как мне изменить стиль? Я попробовал несколько вещей, но ни одна из них не выглядит правильно.
Решение
MouseMove - правильное событие в VB6. Вам придется проделать определенную работу, чтобы вручную определить, когда мышь чисто покидает клиентскую область. (Мои эксперименты в этом мире, те много лет назад, всегда находили, что реализация этого поведения является хитрой.)
Для изменения стиля я бы рекомендовал использовать GDI для: (a) смещения изображения на один пиксель вверх и влево; (б) нарисуйте линию одного пикселя в ButtonHighlightColor вдоль верхнего и левого краев; и (c) нарисовать линию одного пикселя в ButtonShadowColor вдоль нижнего и правого краев. Это сложнее, чем кажется, особенно в VB6, поэтому в конечном итоге я бы порекомендовал ...
Что вы смотрите на элементы управления панели инструментов vbAccelerator . Они свободны, и они, вероятно, доставят вас туда, куда вы хотите. (И да, они «классические» VB - то есть VB6.)