Afficher unu boite de dialgog contenant 1 OCX dans un prog C avec Visual Studio
timy94
Messages postés50Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention 7 janvier 2009
-
17 janv. 2006 à 09:33
timy94
Messages postés50Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention 7 janvier 2009
-
17 janv. 2006 à 15:25
J'ai bien sur réussi à insérer mon OCX (pour mon ex, un tout petit bouton) dans ma boite de dialog IDD_DIALOG1 (créé avec l'outil de Visial Studio. Puis l'utilise DialogBox et DialogProc pour afficher tout ce petit monde. Mais DialogBox me renvoi "-1", ne me m'affiche rien et mon mon prog se termine. La même boite de dialog sans l'OCX est affichée correctement par mon programme. Ci-joint mes quelques lignes de commandes. Sous le mode debug: je m'apperçcois que WM_COMMAND n'est pas détecté quand l'OCX est présent dans ma boite de dialog.
main {
//Mon programme
DialogBox(NULL,MAKEINTRESOURCE(IDD_DIALOG),NULL,DialogProc);
//La suite et fin de mon programme
}
switch (message) {
case WM_COMMAND:
{
switch(LOWORD(wParam)) {
case IDCANCEL:
EndDialog(hwndDlg, 0);
Annuler = 1;
return TRUE;
break;
case IDOK:
EndDialog(hwndDlg,0);
Annuler = 0;
return TRUE;
break;
}
}
Une idée ? Faut-il utiliser une autre technique que les boites sans OCX et DLL. J'oubliais si j'utilise un OCX ou DLL présent dans la bibli de Visual Studio j'ai le même problème. Ce n'est pas mon OCX qui est en cause...
timy94
Messages postés50Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention 7 janvier 2009 17 janv. 2006 à 15:25
Bien j'ai été voir les exemples de racpp. Mais ce cher racpp est plus avancé que moi en la matière.
Alors que moi je veux seulement utiliser un tout petit activeX de la biblio de visual studio 5.
Je m'explique...
Dans mon projet, ma ressource est une simple boite de dialogue à laquelle j'inser un activeX.
-Dans la boite de dialog click droit et choix Insert ActiveX Control...
-Je choisi le LevelSlider, ActiveX de base de visual studio 5.
-CTRL S pour sauvegarder.
-Je teste la boite par l'outil test de visual, OK.
-Je lance mon appli, qui appel
DialogBox(NULL,MAKEINTRESOURCE(IDD_DIALOG),NULL,DialogProc);
-Dans ma fonction
int CALLBACK DialogProc ( HWND hwndDlg, UINT message, WPARAM wParam,LPARAM lParam)
je mets un point d'arrêt sur (mod debug) switch (message)
et je controle le message emis par WINDOWS, et j'ai
1° message N°30 WM_SETFONT
2° message N°02 WM_DESTROY
3° message N°82 WM_NCDESTROY et ça plante retour -1 de DialogBox
Alors que si je ne mets pas l'ActivieX LevelSlider dans ma boite de dialogue j'ai les messages suivants
1° message N°30 WM_SETFONT
2° message N°110 WM_INITDIALOG
3° message etc .... pour ensuite afficher correctement ma boite.