Gå til innhold

Anbefalte innlegg

Eg har lyst og laga et eget "interface" te et programm te innlevering...

 

ka e det grunn leggande eg bør gjør for og få dette te:(se bilde/vedleg)

 

kossen kan eg fjerna ALT fra formen utenom det svarte ommråde og alle kontrollene som er oppå den, de mest grunleggende elementene som kreves av koden min...

 

noen ide?

post-32-1109674471_thumb.jpg

Lenke til kommentar
Videoannonse
Annonse

nice:D akkuratt ka eg ville ha, tusen takk for hjelpen...

 

men kossen kan eg få ann te og visa på oppgave linjå når eg ikkje har någe border på formen? eller muligens fjerna borderen sjøl?

 

[EDIT]

PS: ka e poenget med den måten som andre har gjort det på når de loop'e gjennom alle pixlene og fjerner dem avhengig av om de er "hvite" eller ikke? kossen virke det i forhåld til denne metoden(uteom at nå ble det _veldig_ my enklere:D) dvs, DeletObject etc

Endret av Richard87
Lenke til kommentar

ja, eg prøvde det, men programmet brukte bare utrolig lang te og loade, og så viste det ikke noe i task-bar'en,,,

 

[EDIT] omg, eg vett ikke ka eg gjorde, men nå virke det.. vet du noge om det andra spørsmålet mitt?

 

[EDIT2] Ka e det SendMessage funksjonen sende for någen?

 

SendMessage Me.hwnd, &HA1, 2, 0&

 

[EDIT3]

ok, eg ser ka SendMessage gjør nå, men når eg prøvde og laga ein Class module med funksjonen i, så nekta formen og blitt flutta itte på, någen ide?

 

'clsInterface
Option Explicit


Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" (ByVal hWND As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hWND As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "USER32" (ByVal hWND As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Declare Function ReleaseCapture Lib "USER32" () As Long
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWND As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000

Public Function CreateForm(ByVal BackColor As Long, hWND As Long) As Boolean
Dim Ret As Long

Ret = GetWindowLong(hWND, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED

SetWindowLong hWND, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes hWND, BackColor, 255, LWA_COLORKEY Or LWA_ALPHA

DoEvents
ReleaseCapture
SendMessage hWND, &HA1, 2, 0&
End Function

Endret av Richard87
Lenke til kommentar

Ja, formen vil ikke flyttes, fordi ReleaseCapture og SendMessage-koden ikke kalles når man trykker på formen. Det er de som flytter på formen når du trykker!

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, &HA1, 2, 0&
End Sub

Det legger du i formen.

 

Måten andre gjør det på vet jeg ingen ting om. Har ikke sett måten til de "andre", og er egentlig ikke så dreven på API.

Lenke til kommentar

ok, der va en annen måte(mye mer kompliser, på EliteVB...) men koffer virka det ikkje i ein class module?

 

[EDIT] hehe, leste bare deler av den siste posten din... eg fatte..:(

 

EDIT2: Kossen kan eg "reversere" funksjonen?

Endret av Richard87
Lenke til kommentar

For å tilbakestille formen, kan du eksempelvis gjøre sådan:

 

Public Sub ResetForm(hwnd As Long)

   Dim Ret As Long

   Ret = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
   Ret = Ret And (Not WS_EX_LAYERED)
   SetWindowLong hwnd, GWL_EXSTYLE, Ret

End Sub

Lenke til kommentar

Tusen takk for all hjelpen, eg kunnei kkje ha gjort det uten dokk;D

 

her e en ferdig Class Module som kan gjøra alt pluss litt te...:

SetForm <-- .SetForm vbWhite, me.hWnd, 127
                                       I            I        ^ Alpha blending, hvor mye av formen           
                                       I            I           som skal vises(transparentsy)(Optional)
                                       I           ^ hWnd en til formen(Optional)
                                       ^Fargen som skal vekk
ReSetForm <-- .ReSetForm Me.hWnd
                                               ^ hWnd til formen...(Optional)
MoveForm <-- .MoveForm Me.Hwnd
                                               ^ hWnd til formen...(Optional)
AllowOnTop <-- .AllowOnTop Me.Hwnd
                                               ^ hWnd til formen...(Optional)
SetOnTop <-- .SetOnTop Me.Hwnd
                                               ^ hWnd til formen...(Optional)
hWnd  <-- .hWnd Me.Hwnd
                       gjør sånn at du ikke trenger og legge til hWnd i noen annen funksjon...

 

:w00t:

clsCustInterface.cls

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...