WinAPI funktion ShowWindow.. komisches verhalten



  • Habe ein VB .NET 1.1 Anwendung in der ich ShowWindows API funktion verwende

    Declare Function ShowWindow Lib "user32" Alias "ShowWindow" ( _
                     ByVal hwnd As Long, _
                     ByVal nCmdShow As Long) As Long
    

    wenn ich im konstruktor meine Form

    ShowWindow(Me.Handle.ToInt64,1);
    

    oder

    ShowWindow(Me.Handle.ToInt64,5);
    

    aufrufe, wird das fenster unsichbar gemacht, obwohl dies eigentlich nur bei 0 geschehen sollte ...



  • Hi Boris,

    Deine Typen sind falsch. 'Long' hat, wie Du schon bemerkt hast, die Breite 64 Bit. Die Parameter der Funktion sind aber vom Typ DWORD, also 32 Bit. Besser ist es sogar, wenn Du den ersten Parameter als IntPtr deklarierst und übergibst, das ist intern nämlich ein HWND und der kann unter einigen Systemen breiter sein, nämlich AFAIR 96 Bit (stimmt das?), jedenfalls die gleiche Breite wie ein System.IntPtr.

    Übrigens würde ich Dir vorschlagen, Deine VB-Fragen doch in einem VB-Forum zu stellen, z.B. auf ActiveVB.

    Zurück zum Problem, deklarier die Funktion so:

    Declare Function ShowWindow Lib "kernel32"(hwnd As IntPtr, showCmd As Int32) As Boolean
    

    und ruf sie so auf:

    ShowWindow(Me.Handle, 5)
    

    Am besten ist es aber, Du führst ein Enum für die möglichen Show-Kommandos ein.


Anmelden zum Antworten