Вопрос

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

Два вопроса:

<Ол>
  • Какие события я использую? MouseMove, по-видимому, наиболее близок к «MouseOver» событие. Есть ли более чистые альтернативы?

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

  • Это было полезно?

    Решение

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top