vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB & Windows API
Eigenschaften der Windows-Taskleiste 
Autor: alluju
Datum: 09.09.05 09:29

Hallo!

Ich habe hier den Code für das Ermitteln der Taskleisteneigenschaften gefunden und hab das auch gleich ausprobiert. Funktioniert super.
Wenn ich das allerdings erweitere, dann funktioniert es nicht mehr so super.

Folgendes Problem:

Ich habe ein VB-Formular, dass so groß ist wie die Auflösung des Bildschirms. Damit die taskleiste aber nicht das Formular überdeckt soll das Formular je nachdem wo sich die Taskleiste befindet und wie groß sie ist angepasst werden. Also habe ich noch folgendes hinzugefügt:

Private Declare Function GetDC Lib "user32" _
 (ByVal hwnd As Long) As Long
 
Private Declare Function GetDeviceCaps Lib "gdi32" _
 (ByVal hdc As Long, ByVal nIndex As Long) As Long
 
Private Declare Function ReleaseDC Lib "user32" _
 (ByVal hwnd As Long, ByVal hdc As Long) As Long
 
Private Const HORZRES = 8
Private Const VERTRES = 10
 
Public Property Get ScreenBreite() As Long
  Dim BnDC As Long
 
  BnDC = GetDC(0)
  ScreenBreite = GetDeviceCaps(BnDC, HORZRES)
  ReleaseDC 0, BnDC
 
End Property
 
Public Property Get ScreenHoehe() As Long
 
  Dim HnDC As Long
 
  HnDC = GetDC(0)
  ScreenHoehe = GetDeviceCaps(HnDC, VERTRES)
  ReleaseDC 0, HnDC
 
End Property
Damit ermittle ich die Auflösung. Um das ganze dann zu nutzen, wende ich das alles bei Form_Load an:

Private Sub Form_Load()
    Form1.height = ScreenHoehe * 20
    Form1.width = ScreenBreite * 20
    Form1.top = 0
    Form1.left = 0
 
    Dim tbPosition As Byte
    Dim tbHoehe As Integer
    Dim tbBreite As Integer
    Dim tbVordergrund As String
 
    tbPosition = TaskBarAlign
    tbHoehe = TaskBarHeight * 20
    tbBreite = TaskBarWidth * 20
    tbVordergrund = IsTaskBarOnTop
 
    Select Case TaskBarAlign
    Case 0  'links
        Form1.width = Form1.width - tbBreite     'ungültiger eigenschaftswert
        Form1.left = Form1.left + tbBreite
    Case 1  'rechts
        Form1.width = Form1.width - tbBreite     'ungültiger eigenschaftswert
    Case 2  'oben
        Form1.height = Form1.height - tbHoehe
        Form1.top = Form1.top + tbHoehe
    Case 3  'unten
        Form1.height = Form1.height - tbHoehe
    Case Else
        MsgBox ("fehler")
    End Select
 
End Sub
ScreenHoehe, ScreenBreite, TaskBarheight und TaskBarWidth rechne ich * 20, weil das ganze in Twips angezeigt werden soll und nicht in Pixel (1 Pixel = 20 Twips)

Mein Problem:
Die Höhe und breite der Taskleiste wird richtig ermittelt, ebenfalls die Auflösung. Ist die Taskleiste unten wird korrekt von der Höhe des Formulars die Höhe der Taskleiste abgezogen und auch richtig dargestellt. Ist die Taskleiste aber an den anderen Seiten, wird zwar ebenfalls korrekt gerechnet, allerdings nicht richtig angezeigt. Zwischen Taskleiste und Formular ist immer noch etwas Platz, es scheint also, als ob zu viel vom Formular abgezogen wurde. Was allerdings nicht sein kann, da richtig gerechnet wurde.

Woran könnte das liegen?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Eigenschaften der Windows-Taskleiste1.656alluju09.09.05 09:29
Re: Eigenschaften der Windows-Taskleiste1.052ModeratorMartoeng09.09.05 15:29
Re: Eigenschaften der Windows-Taskleiste995alluju13.09.05 07:02
Re: Eigenschaften der Windows-Taskleiste907ModeratorMartoeng13.09.05 09:54
Re: Eigenschaften der Windows-Taskleiste908alluju13.09.05 12:14
Re: Eigenschaften der Windows-Taskleiste901ModeratorMartoeng13.09.05 12:22
Re: Eigenschaften der Windows-Taskleiste1.077ModeratorMartoeng13.09.05 12:31
Re: Eigenschaften der Windows-Taskleiste971alluju13.09.05 12:32
Re: Eigenschaften der Windows-Taskleiste922alluju13.09.05 12:45

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-2024 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