VB DrawEdge

Pagina: 1
Acties:

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Graag wil ik binnen een app die ik aan het maken ben een button maken, die raised wordt wanneer je er met de muis overgaat. Een beetje als binnen outlook.

Graag wil ik dit zelf maken, maar ik ben op zoek naar de goede api. Ik weet dat je DrawEdge moet gebruiken, maar hiermee krijg ik alleen een vaste border. Ook al hangt de muis er niet boven.

Wie kan mij helpen of heeft een goed voorbeeld???

Ik wil dit doen met een picture box.

  • Crazy D
  • Registratie: Augustus 2000
  • Nu online

Crazy D

I think we should take a look.

Klopt, je zal moeten afvangen wanneer je muis boven de control is, en wanneer niet meer :) (SetCapture API, dan "weet" je in code ook wanneer de muis niet meer boven de control hangt :)
Handiger is het trouwens om eventjes te zoeken, op planetsourcecode.com (en op vele andere sites) zijn al een hoop buttons te downloaden, iig handig om als voorbeeld te bekijken :)

Exact expert nodig?


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Ik heb vanmorgen als ergens een voorbeeldje vandaan gehaald alleen die is heel onaverzichtelijk en onduidelijk. Verders kon ik eigenlijk niets vinden.

Hoe kan het eigenlijk dan oplossen met die setcapture? Heb je een vb voor me?

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 09:19

johnwoo

3S-GTE

De knopjes in WinBar werken ook met SetCapture. In de tracker control zit ook de source van deze knoppies :)

Kijk op http://www.winbar.nl/download.php en kies het TweakTracker control. In die zip moet je LiteButton.ctl hebben :)

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Thanx Dit was precies wat ik zocht!!!

Ik heb het nu zo opgelost:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Dim Hover As Boolean
    If X < 0 Or X > Picture1.ScaleWidth - 1 Or Y < 0 Or Y > Picture1.ScaleHeight - 1 Then Hover = False Else Hover = True
    
    If Hover Then
      SetCapture Picture1.hwnd
      
      Picture1.Line (0, 0)-(Picture1.ScaleWidth, 0), vbWhite  'boven
      Picture1.Line (0, 0)-(0, Picture1.ScaleHeight), vbWhite 'links
      
      Picture1.Line (0, Picture1.ScaleHeight - 1)-(Picture1.ScaleWidth - 0, Picture1.ScaleHeight - 1), RGB(128, 128, 128) 'onder
      Picture1.Line (Picture1.ScaleWidth - 1, 0)-(Picture1.ScaleWidth - 1, Picture1.ScaleHeight - 1), RGB(128, 128, 128)
      
    ElseIf Hover = False Then
      ReleaseCapture
      Picture1.Cls
    End If

Zo krijg ie een raised border wanneer ik er over heen beweeg.

  • Crazy D
  • Registratie: Augustus 2000
  • Nu online

Crazy D

I think we should take a look.

Op zaterdag 01 juni 2002 14:24 schreef NTGiant het volgende:
Zo krijg ie een raised border wanneer ik er over heen beweeg.
Mooi :)
Let er alleen even op dat niet met alle windows-instellingen (windows kleuren) wit en donkergrijs een mooi raised effect geven. Kijk eens naar de windowskleuren-constanten zoals vbButtonShadow en vb3DHighlight.

Exact expert nodig?


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Thanx, dat is inderdaad iets handiger, dan ziet het er bij iedereen uit in de kleuren die hij/zij heeft ingesteld binnen windows.
Pagina: 1