Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Form transparent, Inhalt nicht...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
20.09.2005, 17:38 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Brauche wiedermal einen Tipp..

Ich kann mein Form mit einem Code transparent machen... Ich habe aber z.b. eine kleine Anzeige der derzeitigen IP... Jetzt sieht es dumm aus, wenn rechts oben (z.b.) ein Feld mit der IP ist, und der Hintergrund des Feldes in schwarz, weiß e.t.c. ist...
Wenn ich das Form jetzt 100% transparent mache, dann ist das Label ja auch nichtmehr sichtbar! Das is doof :/

Kann ich nicht den HIntergrund also das Form an sich unsichtbar machen, aber das Label sichtbar lassen? Oder wie kann ich sonst so eine Anzeige auf den Desktop bringen?
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.09.2005, 22:38 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
mit verlaub, wozu braucht man so etwas? Das Formular ist doch der Container für die Steuerelemente, sprich diese sind an das Formular gebunden. Wenn die Form ausgeblendet wird verschwinden automatisch auch die restlichen SE.
Da hilft nur eigene SE zu schreiben, welche mit der Eigenschaft Opacity umgehen können.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.09.2005, 21:07 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Ich will z.b. eine Datumanzeige programmieren, da es mich oft nervt immer doppelt auf die Uhr rechts unten klicken zu müssen.

Also muss z.b. rechts oben auf dem Desktop sowas erscheinen:
12.12.2012

Aber ohne Hintergrund.

Das ganze ist nur für Schrift, für transparente Bilder kannich Skins machen...
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.09.2005, 22:58 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
na dann nimm Deiner Form den Borderstyle (must Du halt werkseln das es auf Nachrichten reagiert) und überschreib die Eigenschaft BackColor auf Transparent (was ursprünglich nicht geht)

Visual Basic:
Public Overrides Property BackColor() As Color
        Get
            Return Color.Transparent
        End Get
        Set(ByVal Value As Color)

        End Set
End Property


Der Rest ist dann nur noch Makulatur.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 29.09.2005 um 23:01 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.10.2005, 00:17 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Overrides...Get...Set....

Hm, das ist wirklich basic? O.o

Also mein vb markiert den ganzen Text (außer End Property am Ende) rot und sagt schon bei dem Wort Property es ist ein Syntax Fehler aufgetreten.

Mal nebenbei habich so einen Code nochnie gesehen.
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.10.2005, 00:52 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
eigentlich mache ich so etwas was jetzt folgt ungern, ABER:

Was bist du denn für Einer? Ich setz mal 'nen Link zu einem Artikel von Dir:
www.fun-soft.de/showtopic.php?threadid=9616&time=1128119811
Dort steht unter anderem:

Zitat:

naja ich würd mir an eurer Stelle echt die Beta ziehen, die hat so einiges, wofür man in vb6 stunden gebraucht hat


Weiterhin:

Zitat von Audron-AT-www:
Overrides...Get...Set....
Hm, das ist wirklich basic? O.o
Also mein vb markiert den ganzen Text (außer End Property am Ende) rot und sagt schon bei dem Wort Property es ist ein Syntax Fehler aufgetreten.
Mal nebenbei habich so einen Code nochnie gesehen.

Also ich brauch jetzt Nachhilfe....
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 01.10.2005 um 14:55 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.10.2005, 15:14 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


seid vb2005 eine Trial Version ist, benutze ich es nichtmehr, weil die Trial Version schon längst zuende ist

Also konnte ich es in NET nicht probieren.
Mit .NET habe ich mich bisher auch wenig beschäftigt, da ich mich auf VB und VC++ spezialisiere.

Kannst du den Code auch in 'normales' BASIC übersetzen? :S
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.10.2005, 17:42 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
gut vergessen wir was ich da oben geschrieben hab:

Visual Basic:
Private Sub Form_Load()
    Me.BackColor = vbTransparent & vbWhite
End Sub


Sollte funzen und ist doch ein netter Einzeiler geworden .
Wie gesagt setze die Eigenschaft BorderStyle auf ??? 0-Kein (hab die 6 Version nicht mehr installiert).
Ziehe ein Label auf die Form, binde einen Timer an und Deine Uhr sollte funzen.
Bedenke aber das Du keine Kontrolle mehr über die Form hast. Sollte aber über ein Kontextmenü zu lösen sein.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.10.2005, 17:57 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Okay schonmal vieeelen Dank

Aber noch eine Frage zum Code...

Der ist ja ganz verständlich, ganz leicht bis auf das vbWhite, das verstehe ich nicht..

Wenn ich mit vbTransparent doch schon den Hintergrund verändere, wozu ist dann das vbWhite gut?
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.10.2005, 19:02 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
die ganze Sache hat mir jetzt keine Ruhe gelassen. Hab mal schnell die verstaubte VS 6.0 rausgesucht und gemerkt das die Sache doch nicht so funzt.

Neue Variante aber diesmal getestet:

Visual Basic:
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDRgn As Long, ByVal hRgn1 As Long, ByVal hRgn2 As Long, ByVal nMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long

Public Sub MyTransForm(frm As Form)
Const RGN_DIFF = 4
Const RGN_OR = 2

Dim o_rgn As Long
Dim i_rgn As Long
Dim wid As Single
Dim hgt As Single
Dim b_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 c_rgn As Long
Dim cb_rgn As Long
Dim ctl As Control

    If WindowState = vbMinimized Then Exit Sub

    ' Region der Hauptform
    wid = ScaleX(Width, vbTwips, vbPixels)
    hgt = ScaleY(Height, vbTwips, vbPixels)
    o_rgn = CreateRectRgn(0, 0, wid, hgt)

    b_width = (wid - ScaleWidth) / 2
    title_height = hgt - b_width - ScaleHeight
    i_rgn = CreateRectRgn( _
        b_width, _
        title_height, _
        wid - b_width, _
        hgt - b_width)

    ' Innere Region von der auesseren abziehen
    cb_rgn = CreateRectRgn(0, 0, 0, 0)
    CombineRgn cb_rgn, o_rgn, _
        i_rgn, RGN_DIFF

    ' Region für die Controls
    For Each ctl In Controls
        If ctl.Container Is frm Then
            ctl_left = ScaleX(ctl.Left, frm.ScaleMode, vbPixels) _
                + b_width
            ctl_top = ScaleX(ctl.Top, frm.ScaleMode, vbPixels) _
                + title_height
            ctl_right = ScaleX(ctl.Width, frm.ScaleMode, vbPixels) _
                + ctl_left
            ctl_bottom = ScaleX(ctl.Height, frm.ScaleMode, vbPixels) _
                + ctl_top
            c_rgn = CreateRectRgn( _
                ctl_left, ctl_top, _
                ctl_right, ctl_bottom)
            CombineRgn cb_rgn, cb_rgn, _
                c_rgn, RGN_OR
        End If
    Next ctl
    SetWindowRgn hWnd, cb_rgn, True
End Sub

Private Sub Form_Resize()
    MyTransForm Me
End Sub


So jetz aber haben fertig...
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 01.10.2005 um 19:09 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: