Blaster2k Skrevet 25. mars 2004 Del Skrevet 25. mars 2004 (endret) I. [v] Hvordan kan jeg sette iconer inni combo boxer slik? II. [v] Om man har en form med Borderstyle - None. Hvordan kan man gjøre slik at man kan flytte den ved hjelp av å holde inne venstretasten på musen og drege den rundtomkring? III. [v] Og hvordan kan man fikse det slik at dragsakerne i II. bare funker når man klikker i et bestemt område av formen? IV. [v] Hvordan kan jeg gjøre deler av en form gjennomsiktig? V. [v] Hvordan kan jeg fjerne teksten i en tekstboks, med å trykke på en "command button"? Endret 28. mars 2004 av Blaster2k Lenke til kommentar
Jonas Skrevet 25. mars 2004 Del Skrevet 25. mars 2004 2: Dette er koden for Move med en knapp: Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ReleaseCapture SendMessage Me.hwnd, &HA1, 2, 0& End Sub Dette legges i en module: Public Declare Function ReleaseCapture Lib "user32" () As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 3: Bare lag en hau med picturebokser med samme bakgrundsfarge som formen og sette den koden på alle sammen, så funker det Lenke til kommentar
aadnk Skrevet 25. mars 2004 Del Skrevet 25. mars 2004 (endret) 1: Legg inn Microsoft Windows Common Controls 6.0 og følg instruksjonene på denne siden. Endret 25. mars 2004 av aadnk Lenke til kommentar
Blaster2k Skrevet 25. mars 2004 Forfatter Del Skrevet 25. mars 2004 (endret) takk geniale saker. Btw. nytt spørsmål lagt til :> Endret 25. mars 2004 av Blaster2k Lenke til kommentar
Jonas Skrevet 25. mars 2004 Del Skrevet 25. mars 2004 (endret) 4: Dette i din form: private sub form_load() TransparentForm Me end sub Dette i en module: Option Explicit Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Const GWL_EXSTYLE = (-20) Public Const WS_EX_LAYERED = &H80000 Public Const WS_EX_TRANSPARENT = &H20& Public Const LWA_ALPHA = &H2& Private Declare Function SleepEx Lib "kernel32" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crey As Byte, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long Public Sub TransparentForm(frm As Form) On Error Resume Next frm.ScaleMode = vbPixels Const RGN_DIFF = 4 Const RGN_OR = 2 Dim outer_rgn As Long Dim inner_rgn As Long Dim wid As Single Dim hgt As Single Dim border_width As Single Dim title_height As Single Dim ctl_left As Single Dim ctl_top As Single Dim ctl_right As Single Dim ctl_bottom As Single Dim control_rgn As Long Dim combined_rgn As Long Dim ctl As Control If frm.WindowState = vbMinimized Then Exit Sub wid = frm.ScaleX(frm.Width, vbTwips, vbPixels) hgt = frm.ScaleY(frm.Height, vbTwips, vbPixels) outer_rgn = CreateRectRgn(0, 0, wid, hgt) border_width = (wid - frm.ScaleWidth) / 2 title_height = hgt - border_width - frm.ScaleHeight inner_rgn = CreateRectRgn(border_width, title_height, wid - border_width, _ hgt - border_width) combined_rgn = CreateRectRgn(0, 0, 0, 0) CombineRgn combined_rgn, outer_rgn, inner_rgn, RGN_DIFF DoEvents For Each ctl In frm.Controls If ctl.Container Is frm Then ctl_left = frm.ScaleX(ctl.Left, frm.ScaleMode, vbPixels) _ + border_width ctl_top = frm.ScaleX(ctl.Top, frm.ScaleMode, vbPixels) + title_height ctl_right = frm.ScaleX(ctl.Width, frm.ScaleMode, vbPixels) + ctl_left ctl_bottom = frm.ScaleX(ctl.Height, frm.ScaleMode, vbPixels) + ctl_top control_rgn = CreateRectRgn(ctl_left, ctl_top, ctl_right, ctl_bottom) CombineRgn combined_rgn, combined_rgn, control_rgn, RGN_OR End If DoEvents Next ctl SetWindowRgn frm.hwnd, combined_rgn, True End Sub Den gjør formen gjennomsiktig. Hvis ikke hele formen skal være det, så legger du bare picture bokser der. Endret 25. mars 2004 av jonas22282460 Lenke til kommentar
Blaster2k Skrevet 25. mars 2004 Forfatter Del Skrevet 25. mars 2004 skjønner, deilige saker takktakk Lenke til kommentar
Blaster2k Skrevet 28. mars 2004 Forfatter Del Skrevet 28. mars 2004 Ah, fant svaret på #5 selv =) Text#.Text = "" Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå