Peut'on obtenir un object à partir d'un hwnd ?

Résolu
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011 - 6 févr. 2009 à 18:12
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 7 févr. 2009 à 20:15
Bonjour,
Peut'on obtenir un object à partir d'un hwnd  d'une façon quelquonque comme celle-ci ?

D'abord, créer un object, dans ce cas, le calendrier:
Dim ObjHwnd as long
ObjHwnd= CreateWindowEx(0, "SysDateTimePick32", "DateTime", WS_CHILD Or WS_VISIBLE Or 4, 0, 0, 200, 20, ContainnerHwnd, 0, App.hInstance, 0)

Ensuite assigner:
Dim Obj as VbControlExtender
set Obj = GetObjectEx (ObjHwnd)
Obj.Height =20

C'est alors la procedure GetObjectEx  que j'aimerais connaître.
Je vous remercie bien d'avance de vos solutions postées

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 févr. 2009 à 00:46
reprenons.

Les gars de chez Microsoft ont pondu tout un tas de fenetres.
celles ci (ListView et autres Textboxes) se pilotent via des messages.
on jour avec en mentionnant leur hWnd, etc.

d'autres gars de chez Microsoft ont eu pour mission de rendre ces composants utilisables via la technologie COM.
les ocx que l'on utilise couramment sont arrivés. les méthodes et propriétés permettent de manipuler la fenêtre que ces controles on créé en interne.


là, tu créé une fenetre. Elle n'a aucun lien avec un quelconque objet COM
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 févr. 2009 à 18:20
et non ^^

ces controles incorporent et manipulent une fenetre, comme tu le fais.
pourquoi ne passes tu pas directement par l'OCX ?

(reste que tu peux tout manipuler via SendMessage)
0
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
6 févr. 2009 à 19:17
oui, je peux tout faire via SendMessage et via WindowProcuration pour choupper les événements, mais ça serait intéréssant de pouvoir assigner une variable vbControlExtender  à un object dont on ne connait que son handle ( hwnd)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 févr. 2009 à 19:27
A ce point, faudrait te poser la question du pourquoi rester sur VB.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
6 févr. 2009 à 20:10
peut être qu'un jour j'irais migrer vers le C... ou PureBasic (maintenaint avec le COMATE de PureBasic, la programation est aussi orienté Object et, même sans ça, l'executable crée n'a besoin d'aucune dépendance pour pouvoir utiliser des listviews, flexgrids, dao, sql, treeviews, etc, le tout avec les styles xp automatiques lors de la compilation) 

Mais revennons, avecVB et les API on peut faire quelque chose concernant le titre ci-dessus, j'attends d'autres avis...
0
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
7 févr. 2009 à 16:16
ouais, t'as bien raison, merci pour la bonne réponse.

Donc, soit on doit passer par un ocx contenant l'object (le calendrier dans ce cas), soit on doit passer par le subclassing, sendmessage etc

Bon dimanche à tous
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 févr. 2009 à 20:15
tu as bien saisi ^^

bonne journée à toi.
0
Rejoignez-nous