Peut'on obtenir un object à partir d'un hwnd ? [Résolu]

Signaler
Messages postés
178
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
30 novembre 2011
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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)
Messages postés
178
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
30 novembre 2011

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)
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
A ce point, faudrait te poser la question du pourquoi rester sur VB.

ciao...
BruNews, MVP VC++
Messages postés
178
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
30 novembre 2011

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...
Messages postés
178
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
30 novembre 2011

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu as bien saisi ^^

bonne journée à toi.