vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Dem BS ein Control als Titelleiste vortäuschen 
Autor: WaldiMaywood
Datum: 03.11.04 21:14

>> Und jetzt kommt wieder das menü ins Spiel. Das wirst du nicht unter das Panel bringen, sondern es wird immer oben stehen. Und ich kenne API, die das könnte.

Kenne selbst auch keine Win32-API. Denke auch, das es überhaupt nicht möglich ist. Das dass Menu sich (immer) unter der Titelleiste befindet, ist von Win vorgegeben. Hab hier ein recht gutes Hardcore Windowsprogrammierungsbuch (Sprache C) liegen, und selbst da schreibt C.Petzold, das dies nur mit einem ContextMenu möglich ist/wäre.


>> Und jetzt kann ich entweder nur ein eigenes Control bauen, was dann ContextMenüs anzeigt, oder ich finde eine Möglichkeit wie Theme-Tools die Titeleiste und den Border so drastisch zu verändern, dass es meinen Vorstellungen entspricht.

Du kannst ja auch selber etwas "eigenes" z.B. mit ein Label (o. dergleichen) nachbilden. Hab das mal versucht, und dies ist dabei rausgekommen:
 Private Sub MyMenu_Show(ByVal sender As Object, ByVal e As MouseEventArgs)
        If e.Button = MouseButtons.Left Then
            Dim c As New ContextMenu(New MenuItem() {New MenuItem("eintrag1"), _
              New MenuItem("eintrag2"), New MenuItem("eintrag3")})
            c.Show(sender, New Point(0, CType(sender, Label).Height))
        End If
    End Sub
    Private Sub MyMenu_Show_MouseEnter(ByVal sender As Object, ByVal e As _
      System.EventArgs)
        CType(sender, Label).Font = New Font(CType(sender, Label).Font, _
        FontStyle.Underline)
    End Sub
    Private Sub MyMenu_Show_MouseLeave(ByVal sender As Object, ByVal e As _
      System.EventArgs)
        CType(sender, Label).Font = New Font(CType(sender, Label).Font, _
        FontStyle.Regular)
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        Dim l As New Label
        Dim p As New Panel
        p.Location = New Point(20, 20)
        p.BorderStyle = BorderStyle.FixedSingle
        l.Text = "My Menu"
        l.Height = l.CreateGraphics().MeasureString(l.Text, l.Font).Height + 1
        l.Width = l.CreateGraphics().MeasureString(l.Text, l.Font).Width + 1
        AddHandler l.MouseDown, AddressOf MyMenu_Show
        AddHandler l.MouseLeave, AddressOf MyMenu_Show_MouseLeave
        AddHandler l.MouseEnter, AddressOf MyMenu_Show_MouseEnter
        p.Controls.Add(l)
        Me.Controls.Add(p)
    End Sub
(Ist natürlich nicht perfekt, macht aber sonst einen recht guten/brauchbaren Eindruck)
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Dem BS ein Control als Titelleiste vortäuschen951teccer03.11.04 15:49
Re: Dem BS ein Control als Titelleiste vortäuschen653WaldiMaywood03.11.04 19:44
Re: Dem BS ein Control als Titelleiste vortäuschen653teccer03.11.04 20:37
Re: Dem BS ein Control als Titelleiste vortäuschen802WaldiMaywood03.11.04 21:14
Re: Dem BS ein Control als Titelleiste vortäuschen621teccer04.11.04 08:59
Re: Dem BS ein Control als Titelleiste vortäuschen624WaldiMaywood04.11.04 10:54
Re: Dem BS ein Control als Titelleiste vortäuschen649teccer04.11.04 11:55
Re: Dem BS ein Control als Titelleiste vortäuschen679ModeratorFZelle05.11.04 12:56
Re: Dem BS ein Control als Titelleiste vortäuschen619teccer05.11.04 13:07
Re: Dem BS ein Control als Titelleiste vortäuschen637ModeratorFZelle05.11.04 15:06
Re: Dem BS ein Control als Titelleiste vortäuschen631teccer05.11.04 15:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel