vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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
TreeView über SendMessage auslesen 
Autor: t.b.d
Datum: 08.05.07 16:01

Hallo,

ich möchte ein TreeView über die Windows API auslesen.
Ziel ist es später das TreeView einer externen Anwendung auszulesen.
Um erstmal auf einen grünen Zweig zu kommen, lesen ich mein eigenes TreeView aus.

Dafür habe ich die ExTreeViewCls erstellt, mit desen Hilfe ich das TreeView auslesen möchte:
Public Class ExTreeViewCls
 
    Dim iHwndCls As IntPtr
 
    Public Sub New(ByVal hWnd As IntPtr)
        iHwndCls = hWnd
    End Sub
 
    'Use a sequential structure layout to define TVITEM for the TreeView 
    ' control.
    <Runtime.InteropServices.StructLayout( _
    Runtime.InteropServices.LayoutKind.Sequential, Pack:=8, _
    CharSet:=Runtime.InteropServices.CharSet.Auto)> _
    Public Structure TVITEM
        Public mask As Integer
        Public hItem As IntPtr
        Public state As Integer
        Public stateMask As Integer
        Public pszText As IntPtr
        Public cchTextMax As Integer
        Public iImage As Integer
        Public iSelectedImage As Integer
        Public cChildren As Integer
        Public lParam As IntPtr
    End Structure
 
    'Messages
    Public Const TV_FIRST As Integer = 4352
    Public Const TVM_SETIMAGELIST As Integer = TV_FIRST + 9
    Public Const TVM_GETNEXTITEM As Integer = TV_FIRST + 10
    Public Const TVM_GETITEM As Integer = TV_FIRST + 12
    Public Const TVM_SETITEM As Integer = TV_FIRST + 13
    Public Const TVM_HITTEST As Integer = TV_FIRST + 17
    Public Const TVM_SORTCHILDRENCB As Integer = TV_FIRST + 21
    'TVM_GETNEXTITEM wParam
    Public Const TVGN_ROOT As Integer = &H0
    Public Const TVGN_NEXT As Integer = &H1
    Public Const TVGN_CHILD As Integer = &H4
    Public Const TVGN_CARET As Integer = &H9
 
    <Runtime.InteropServices.DllImport("user32.dll")> _
    Public Overloads Shared Function SendMessage _
        (ByVal hWnd As IntPtr, ByVal Msg As Integer, _
        ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    End Function
 
    <Runtime.InteropServices.DllImport("User32.dll", _
    CharSet:=Runtime.InteropServices.CharSet.Auto)> _
    Public Overloads Shared Function SendMessage _
        (ByVal hWnd As IntPtr, ByVal msg As Integer, _
        ByVal wParam As Integer, ByRef lParam As TVITEM) As Integer
    End Function
 
   Public Function GetItem(ByRef pItem As TVITEM) As Boolean
        Try
            SendMessage(iHwndCls, TVM_GETITEM, Nothing, pItem)
            Return True
        Catch ex As Exception
            Debug.Assert(False)
            Trace.WriteLine("Fehler: Wo: " & _
                ex.StackTrace & " Was: " & ex.Message)
            Return False
        End Try
    End Function
 
End Class
Das ganz wird in meinem Test-Formular, in welchem ein TreeView mit Testinhalt vorhanden ist, aufgrufen:
Private Sub Button1_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim oExTreeView As ExTreeViewCls
            Dim oItem As ExTreeViewCls.TVITEM
            oExTreeView = New ExTreeViewCls(Me.TreeView1.Handle)
            oExTreeView.GetItem(oItem)
         Catch ex As Exception
            Debug.Assert(False)
            Trace.WriteLine("Fehler: Wo: " & _
                ex.StackTrace & " Was: " & ex.Message)
        End Try
    End Sub
Leider bleibt meine TVITEM Struktur immer leer und ich weis nun nicht mehr was ich noch ausprobieren soll.

Deshalb die ganz einfache Frage:
Was mache ich falsch?

Mfg Daniel
Brauchen Sie Hilfe, sind Sie in Not? Wir retten Sie mit unserem Code!
SolidWorks API-Programmierung

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
TreeView über SendMessage auslesen2.822t.b.d08.05.07 16:01
Re: TreeView über SendMessage auslesen1.672Maywood10.05.07 17:09
Re: TreeView über SendMessage auslesen - Nachtrag1.633Maywood10.05.07 17:19
Re: TreeView über SendMessage auslesen - Nachtrag1.510t.b.d11.05.07 08:54
Re: TreeView über SendMessage auslesen - Nachtrag1.531t.b.d11.05.07 12:37
Re: TreeView über SendMessage auslesen - Nachtrag1.628Maywood14.05.07 08:46
Re: TreeView über SendMessage auslesen - Nachtrag2.572Maywood14.05.07 14:29
Re: TreeView über SendMessage auslesen - Nachtrag1.592t.b.d14.05.07 14:43

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