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
Re: TreeView über SendMessage auslesen - Nachtrag 
Autor: Maywood
Datum: 10.05.07 17:19

Uups wie peinlich.

Der vorher gepostete Code funktioniert nur mit Strict Off und Explicit Off. Hier der überarbeitete (Strict On und Explicit On) Code:
Option Strict On 
Option Explicit On 
 
Imports System.Runtime.InteropServices
 
Public Partial Class MainForm
 
	Public Const TV_FIRST as Integer = 4352
	Public Const TVSIL_NORMAL as Integer = 0
	Public Const TVSIL_STATE as Integer = 2
	Public Const TVM_SETIMAGELIST as Integer = TV_FIRST + 9
	Public Const TVM_GETNEXTITEM as Integer = TV_FIRST + 10
	Public Const TVIF_HANDLE as Integer = 16
	Public Const TVIF_STATE as Integer = 8
	Public Const TVIF_IMAGE as Integer = 2
	Public Const TVIS_STATEIMAGEMASK as Integer  = 61440
	Public Const TVM_SETITEM as Integer = TV_FIRST + 13
	Public Const TVGN_ROOT as Integer = 0
    Public Const TVM_GETITEM As Integer = TV_FIRST + 62
    Public Const MY_MAXLVITEMTEXT As Integer = 260
    Private Const TVIF_TEXT As Int32 = &H1
 
	<StructLayout(LayoutKind.Sequential, Pack:=8, CharSet:=CharSet.Auto)> _
	Public Structure TVITEM
	    Dim mask As Integer
	    Dim hItem As IntPtr
	    Dim state As Integer
	    Dim stateMask As Integer
	    Dim pszText As IntPtr
	    Dim cchTextMax As Integer
	    Dim iImage As Integer
	    Dim iSelectedImage As Integer
	    Dim cChildren As Integer
	    Dim lParam As IntPtr
	End Structure
 
	<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
 
	<DllImport("User32.dll", CharSet:=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
 
	Private Declare Function LocalAlloc _ 
	Lib "kernel32.dll" (ByVal wFlags As Int32, ByVal wBytes As Int32) As Int32
 
	Public Sub New()
		' The Me.InitializeComponent call is required for Windows Forms designer 
' support.
		Me.InitializeComponent()
		'
		' TODO : Add constructor code after InitializeComponents
		'
	End Sub
 
	Sub MainFormLoad(ByVal sender As Object, ByVal e As EventArgs)
		'// FillTreeView()	
	End Sub
 
	Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs)
		Dim tvi As New TVITEM
		Dim hWnd As IntPtr = Me.treeView1.Handle 
		Dim pszText As IntPtr = IntPtr.Zero
		DIm  buffer as string = nothing
		Dim hRoot As IntPtr = IntPtr.op_Explicit(SendMessage(hWnd, TVM_GETNEXTITEM, _
  TVGN_ROOT, 0))
		tvi.hItem = hRoot
		tvi.state = 0
        SendMessage(Me.TreeView1.Handle, TVM_GETITEM, 0, tvi)
        pszText = new IntPtr(LocalAlloc(&H40, MY_MAXLVITEMTEXT))
        tvi.mask = TVIF_TEXT
		tvi.hItem = hRoot
		tvi.cchTextMax = MY_MAXLVITEMTEXT
		tvi.pszText = pszText
		SendMessage(Me.TreeView1.Handle, TVM_GETITEM, 0, tvi)
		buffer = Marshal.PtrToStringUni(tvi.pszText, MY_MAXLVITEMTEXT)
        Debug.WriteLine (buffer)
		MessageBox.Show (buffer)
	End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
TreeView über SendMessage auslesen2.821t.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.530t.b.d11.05.07 12:37
Re: TreeView über SendMessage auslesen - Nachtrag1.627Maywood14.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