Domanda

Sto usando un PictureBox VB6 sul mio controllo utente. Ho impostato l'immagine di PictureBox, ho impostato BorderStyle su 0 e ho impostato BackColor su BackColor del controllo utente. L'idea è che voglio un "mobile" icona. Tuttavia, voglio che quell'icona appaia cliccabile quando il mouse ci passa sopra.

Due domande:

  1. Quali eventi devo usare? MouseMove sembra essere il più vicino a un "MouseOver" evento. Ci sono alternative più pulite?

  2. Come devo cambiare lo stile? Ho provato alcune cose, ma nessuna di queste sembra proprio giusta.

È stato utile?

Soluzione

  1. MouseMove è l'evento corretto in VB6. Dovrai fare un po 'di lavoro per rilevare manualmente quando il mouse lascia l'area client in modo pulito. (I miei esperimenti in questo mondo, lo sono stati molti anni fa, hanno sempre trovato difficile implementare questo comportamento.)

  2. Per cambiare lo stile, consiglio di usare GDI per: (a) spostare l'immagine di un pixel verso l'alto e verso sinistra; (b) traccia una singola linea di pixel in ButtonHighlightColor lungo i bordi superiore e sinistro; e (c) tracciare una singola linea di pixel in ButtonShadowColor lungo i bordi inferiore e destro. Questo è più complicato di quanto sembri, in particolare in VB6, quindi alla fine consiglierei ...

Che guardi controlli della barra degli strumenti di vbAccelerator . Sono gratuiti e probabilmente ti porteranno la maggior parte di dove vuoi essere. (E sì, sono "classiche" VB, ovvero VB6.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top