Ajout d'un Contrôle dans un ControlContainer

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 17 oct. 2010 à 10:10
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 18 oct. 2010 à 07:41
Bonjour à Tous,

J'essaie de développer un contrôle OCX similaire au SSTab de VB6. Il est donc composé d'un certain nombre de PictureBox défini au fil de l'eau et correspondant au nombre d'onglets. Jusque là, pas de problème.

Il me reste deux petites questions:
A la conception, si un développeur utilise mon composant, j'ai vu sur ce site que l'on peut à l'aide de l'API SetParent() redéfinir le parent (la PictureBox donc) de ce contrôle ajouté. Mais dans mon code, où et comment puis-je détecter l'ajout de ce contrôle ? A priori, mes essais avec la propriété ContainedControls n'ont rien donné, mais je n'ai peut-être pas tout compris.

La deuxième question, comment pourrais-je réagir au clic sur un onglet lors de la conception. Toujours en rapport avec la question précédente, cela éviterait de modifier le numéro de l'onglet avant d'ajouter un contrôle mais de cliquer sur l'onglet voulu (exactement comme le contrôle natif SSTab). Si possible sans sous-classement, mais est-ce possible ?

J'espère avoir été assez clair et merci d'avance pour vos réponses.


Calade

4 réponses

cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
17 oct. 2010 à 15:20
Bonjour,

Si j'ai bien tout saisie tu créer des controls dynamiquement après quoi tu veut les placé dans ton picturebox...
Si c'est bien ça nul besoin d'une API quelconque VB6 à une fonction pour ça

Supposont le cas suivant :
- Command1 -> control créer dynamiquement
- Picture1 -> devant recevoir le bouton...

Set Command1.Container = Picture1
'Et voilà le bouton à été déplacer est est maintenant un enfant du conteneur picture1


Pour ton deuxieme problème par contre, là je sèche, bonne question, j'ai déja bidouiller pour pouvoir usé d'un control en mode d'édition mais seulement avec le verbe "modifier" se trouvant dans le menu contextuel...
Par contre à vois le "très peu" de control qui on cette capacité je suis quasiment sûr que ça doit être une sacré usine à gaz à coder, du genre hook de la souris plus recupe du contexte du control par interception de messages windows et tout le tremblement puis subclassing... Un sacré merdier j'imagine...

En tout cas bonne chance sur ce point, je suis curieur de connaitre une solution ^^


Guillaume
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
17 oct. 2010 à 15:34
Salut et merci de ta réponse,

C'est pas tout à fait ça malheureusement. J'ai un 1er projet qui est un contrôle ActiveX en cours de développement qui mimique le SSTab de Microsoft.

Dans le 2ème projet de test, j'ai une feuille la plus basique possible pour les tests qui utilise ce contrôle. Ce que je voudrais faire c'est, dans mon OCX, déterminer dans quel onglet va se positionner les contrôles que l'utilisateur (de mon OCX) va poser desssus. Admettons pour l'instant que je me base sur la valeur de l'onglet courant pour déterminer dans quel PictureBox l'intégrer (et modifier ainsi le parent dudit contrôle) il faut le faire en mode design de l'utilisateur.

J'espère avoir été clair.

Pour la 2ème question, c'est ce que je craignais. Si quelqu'un a une autre idée...


Calade
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
17 oct. 2010 à 18:23
Heu ouais ben du coup heu...

Je crois que la première question risque de rejoindre la seconde...
Après rassure toi je ne suis pas experts en la matière y'a bien un petit Reinfield ou PCPT qui passera dans le coin et saurai au moins t'aiguiller dans la bonne direction...

Good luck


Guillaume
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 oct. 2010 à 07:41
C'est pas grave et merci quand même d'avoir essayé. Il est vrai que c'est un peu tordu comme question.

Si les deux VBSourceMen sus-nommés passe par là...


Calade
0
Rejoignez-nous