dans VBA .J'ai le message d'erreur suivant : "membre de méthode ou de données introuvable" sur hwnd.
J'ai déclaré auparavant :
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 4 déc. 2006 à 12:02
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
· hWnd
Identifies the window whose window procedure will receive the message. If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system, including disabled or invisible unowned windows, overlapped windows, and pop-up windows; but the message is not sent to child windows.
cs_drakkard
Messages postés99Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009 4 déc. 2006 à 18:28
Salut à tous
merci pour vos réponse...
Mortalino j'ai trouvé ça sur le Web, tu en penses quoi ?
Moi je suis en train de voir si je peux l'adapter à mon cas.
Option Explicit
Private Declare Function GetFocus Lib "user32" () As Long
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) _
As Long
Private Declare Function GetClassName _
Lib "user32" Alias "GetClassNameA" _
(ByVal hwnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) _
As Long
Property Get hwnd() As Long
'custom hWnd property for the Userform class
hwnd = FindWindow _
( _
lpClassName:=IIf(Val(Application.Version) > 8, _
"ThunderDFrame", _
"ThunderXFrame"), _
lpWindowName:=Me.Caption _
)
End Property
Private Function GetTextbox_hWnd() As Long
TextBox1.SetFocus
GetTextbox_hWnd = GetFocus()
End Function
Private Sub CommandButton1_Click()
TextBox1.Value = GetTextbox_hWnd
MsgBox Me. hwnd
End Sub
Private Sub CommandButton2_Click()
Dim buffer As String
Let buffer = String(256, CStr(0))
Call GetClassName(GetTextbox_hWnd(), buffer, Len(buffer))
MsgBox buffer
End Sub
cs_drakkard
Messages postés99Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009 4 déc. 2006 à 19:31
Merci Mortalino, je vais tester.
Bah..., disons que je voulais contrôler la frappe clavier pour empêcher que l'utilisateur ne tape n'importe quoi...
Je ne sais pas si c'est vraiment la bonne méthode, peut-être la plus rapide....
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 5 déc. 2006 à 06:58
Tu peux directement contrôler les touches depuis l'évènement KeyPress, mais ça dépend de ce que tu veux.
Qu'est ce que tu veux faire exactement ?
Que veux tu empêcher sur la frappe de l'utilisateur ?
Pour ton cas SendMessage n'est pas approprié, il sert soit à envoyer du texte dans un contrôle, soit il sert à sélectionner un item d'une ListBox selon ce qui est saisie quelque part.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
cs_drakkard
Messages postés99Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009 5 déc. 2006 à 14:30
Salut Mortalino,
merci encore pour ton aide.
Ce que je cherche à faire, c'est un texte box ( qui doit contenir une date au format dd/mm/yyyy )
et donc je veux que lors de la frappe soit vérifié le format.
Que l'utilisateur ne puisse pas mettre un truc du genre 424/456/72...
J'avoue que je le fais sous VB avec le send message, mais si tu me dis que c'est pas la meilleure méthode ;
je suis preneur pour meilleure idée...