vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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
Problem mit SHAppBarMessage 
Autor: Thomas Krause
Datum: 24.01.03 15:36

Warum funktioniert der Code nicht?
Ich will eine Application Bar erstellen (siehe auch den Tipp dazu auf dieser Seite) und führe daher SHAppBarMessage aus. Allerdings erhalte ich bei Ausführung dieses Befehls (Fett markiert) einen Fehler, dass die Objektvariable nicht auf eine Instanz festgelegt wurde. Woran liegt das??? Wenn ich eine Funktion gleichen Namens (und mit gleichen Parametern) erstelle und aufrufe erhalte ich keinen Fehler. Es muss also irgendwie an der API-Funktion liegen.

Kann sich jemand mal den Code in der IDE angucken:
(Der Code mach alleine betrachtet keinen Sinn, sondern stammt aus einem größeren Projekt. Um den Fehler zu rekonstruieren, habe ich ein kleines Mini-Projekt erstellt und den Code hinzugefügt.)

Public Class Form1
    Inherits System.Windows.Forms.Form
 
#Region " Vom Windows Form Designer generierter Code "
 
    Public Sub New()
        MyBase.New()
 
        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()
 
        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
 
    End Sub
 
    ' Die Form Überschreibt den Löschvorgang der Basisklasse, um Komponenten zu 
    ' bereinigen.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    ' Für Windows Form-Designer erforderlich
    Private components As System.ComponentModel.IContainer
 
    'HINWEIS: Die folgende Prozedur ist f³r den Windows Form-Designer 
    ' erforderlich
    'Sie kann mit dem Windows Form-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(24, 24)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(104, 24)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Button1"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
 
    Public Structure RECT
        Public Left As Integer
        Public Top As Integer
        Public Right As Integer
        Public Bottom As Integer
    End Structure
 
    Public Structure APPBARDATA
        Public cbSize As Integer
        Public hwnd As Integer
        Public uCallbackMessage As Integer
        Public uEdge As Integer
        Public rc As RECT
        Public lParam As Integer '  message specific
    End Structure
 
    Const ABM_NEW As Integer = &H0
    Const ABM_REMOVE As Integer = &H1
 
    Public Declare Function SHAppBarMessage Lib "Shell32.dll" (ByVal dwMessage _
      As Integer, ByVal pData As APPBARDATA) As Integer
 
    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Static Active As Boolean = False
        Dim d As APPBARDATA
        Dim tmp As Integer
 
        d.hwnd = Me.Handle.ToInt32
        d.cbSize = Len(d)
 
        If Active Then
            tmp = SHAppBarMessage(ABM_REMOVE, d)
        Else
            tmp = SHAppBarMessage(ABM_NEW, d)
        End If
 
        Active = True
    End Sub
End Class

Thomas Krause

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem mit SHAppBarMessage734Thomas Krause24.01.03 15:36

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