ActiveX et visual studio

Signaler
Messages postés
50
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009
-
Messages postés
50
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009
-
Quelle est la méthode pour afficher une IDD_DIALOG contenant un ActiveX, par ex "levelSlider Control" de la panoplie visual
studio.
J'utilise CALLBACK DialogBox(........,DialogProc) et la fonction DialogProc(.....);
La fenêtre ne s'affiche pas et DialogBox renvoi -1.
Je n'arrive pas non plus à capturer l'erreur avec GetLastError(void)

Nota: Ne me parler pas des exemples de "racpp" et ses appels ActiveX Car il sont beaucoup trop compliqués et ne correspondent pas à ma demande.


Timy94</gras>

4 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Tu es certain de parler d'un ActiveX et non d'un common control ?
Teste en mettant:
InitCommonControls();
au début de ton WinMain.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
50
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009

Alors la je sais plus, ActiceX ou common control?

En fait je t'explique mes actions.
Je crée mes boites de dialogue uniquement avec les outils de Visual studio 6.0, jamais en lignes de commandes.
Dans le Workspace > Script 1 Resources je click sur
+Dialog
> IDD_DIALOG1

IDD_DIALOG1 apparait et je peux y insérer des boutons ou autres objets disponibles (Slider CheckBox etc..) et CTRL S pour sauvegarder, of course!
Jusque là tout va bien, mon programme appelant n'est pas en C++ mais en C tout de ce qui à de plus simple et le tout s'affiche comme prévu.
Mon appel à la boite de dialogue est comme le décrit dans mon précédant message, "DialogBox et DialogProc" et j'analyse les messages envoyés par windows, ça marche bien, j'arrive même à utiliser les couleurs dans les EditBox, encore merci au forum de cppfrance.com.


Mais j'ai découvert, qu'avec un click droit dans ma bointe de dialog, pendant sa fabrication ( pas pendant son execution), j'avais accès à l'outils "Insert ActiveX Control..". Une liste d'objets, OXC et DLL sont donc disponibles pour ma boite de dialogue:
Exemples:
microsoft FORM 2.0 checkBox
AidSais.SaisNum
etc....
Pourquoi pas les utiliser, d'autant plus que certaines on l'air intéressante. En fait ce sont tous les objets référencés par la base de registre Windows. Certains sont dans system32, d'autres sont dans les répertoires distincts des applications qui les utilisent.

Mais dès que j'en insère un dans ma boite de dialogue celle-ci ne s'affiche plus et DialogBox me renvoi -1

Voila MSDN et racpp ne m'on pas inspiré.
Y vois tu plus clair?


Timy94</gras>
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
"MS Form 2" sont les ActiveX dédiés à Office, ne mets pas cela.
En C/C++ tu dois utiliser les controles du système directement, aucun besoin d'ActiveX, il faut laisser cela aux langages interprétés.
Dans les 'common controls' tu as le Slider, utilise cela en mettant ce que j'ai dit plus haut.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
50
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009

J'ai trouvé ça dans MSDN france concernant les activeX et Visual C++.
C'est mon cas, mais je ne sait sait pas ce qu'est un wrapper et je ne sait pas créer une classe.
Des claques!
Help me car c'est peut être la solution de mes soucis.

Merci de ta réponse.

Concepts Visual C++ : ajout de fonctionnalités




Insérer un contrôle ActiveX.


Pour insérer un contrôle ActiveX à partir de la boîte à outils
<OL type= 1>
<LI>Cliquez avec le bouton droit sur une section vide de la boîte à outils.
<LI>Dans le menu contextuel, cliquez sur Personnaliser la boîte à outils et sélectionnez les contrôles qui vous intéressent.
<LI>Faites glisser les contrôles jusqu'à la boîte de dialogue dans l'Éditeur de boîtes de dialogue. </LI></OL>
Pour insérer un contrôle ActiveX à partir de l'Éditeur de boîtes de dialogue
<OL type =1>
<LI>Cliquez avec le bouton droit sur la boîte de dialogue.
<LI>Dans le menu contextuel, cliquez sur Insérer un contrôle ActiveX.
Remarque Lorsque vous insérez un contrôle ActiveX dans un projet à partir de la boîte de dialogue Insérer un contrôle ActiveX, les Classes wrapper ne sont pas incluses dans le projet. Il vous appartient de créer une classe wrapper pour personnaliser le fonctionnement du contrôle.





</LI></OL>

Timy94</gras>