anoniem Geplaatst: 4 maart 2006 Delen Geplaatst: 4 maart 2006 De code is [code:1:a1eaac28aa] Public MyHwnd As Long Public Sub GetStaticInfo(ByVal Hwnd As Long) Dim P As Integer Dim TaskID As Long MyHwnd = Hwnd Call GetWindowThreadProcessId(MyHwnd, TaskID) Label1(11).Caption = GetClass(MyHwnd) Label1(12).Caption = MyHwnd Label1(13).Caption = TaskID Text1 = GetClass(MyHwnd) Text2 = MyHwnd Text3 = TaskID Me.Show End Sub Private Sub Command1_Click() Dim C As New Cap2 Call C.GetStaticInfo(197710) End Sub [/code:1:a1eaac28aa] waarom werkt dit wel als ik Me.Show gebruik en niet zonder Me.Show zo dat alles op z'n eigen form blijft. iemand een iedee hoe ik dit moet veranderen? Quote Link naar reactie
anoniem Geplaatst: 7 maart 2006 Auteur Delen Geplaatst: 7 maart 2006 Je bent niet volledig in de vraagstelling? Mijn aannames: [code:1:f1bbb2b914]Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hWnd As Long, ByRef dwX As Long) As Long[/code:1:f1bbb2b914] De form waar je code vanaf komt heet Cap2? Als ik de boel dan start zonder GetClass functie, werkt het prima. Je nieuwe instanties Cap2 zijn gewoon hidden na de call van GetStaticInfo. Deze regel in Command1_Click is niet zo logisch: [code:1:f1bbb2b914]Call C.GetStaticInfo(197710)[/code:1:f1bbb2b914]want: [quote:f1bbb2b914]The Microsoft Windows operating environment identifies each form and control in an application by assigning it a handle, or hWnd. The hWnd property is used with Windows API calls. Many Windows operating environment functions require the hWnd of the active window as an argument. [b:f1bbb2b914]Note Because the value of this property can change while a program is running, never store the hWnd value in a variable.[/b:f1bbb2b914] [/quote:f1bbb2b914]Je codeert hier keihard een window handle? Ook nog reden voor verwarring: Doordat je een parameter genaamd hWnd gebruikt in GetStaticInfo kun je de window handle van de form niet meer benaderen. Althans niet zolang je niet Me.hWnd gebruikt.... [code:1:f1bbb2b914]Option Explicit Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hWnd As Long, ByRef dwX As Long) As Long Public MyHwnd As Long Public Sub GetStaticInfo(ByVal hWnd As Long) Dim P As Integer Dim TaskID As Long MsgBox Me.hWnd & " " & hWnd MyHwnd = hWnd Call GetWindowThreadProcessId(MyHwnd, TaskID) 'Label1.Caption = GetClass(MyHwnd) Label2.Caption = MyHwnd Label3.Caption = TaskID 'Text1 = GetClass(MyHwnd) Text2 = MyHwnd Text3 = TaskID Me.Show End Sub Private Sub Command1_Click() Dim C As New Cap2 Call C.GetStaticInfo(197710) End Sub [/code:1:f1bbb2b914] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen