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
71
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
71
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
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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
71
7 févr. 2009 à 20:15
tu as bien saisi ^^

bonne journée à toi.
0