Bonjour,
Je suis entrain d'essayer de créer une dll qui sert à ajouter des fonctions à un programme déjà existant.
Dans une fonction de la dll, je voudrais pouvoir appeler une boite de dialogue servant à régler la valeur d'un paramètre (un champ, une scrollbar, peu importe...).
Voici le code le plus simple possible de la dll
Et je ne sais absolument pas comment faire ! Je bosse depuis ce matin sous Visul C++ 6, alors que j'ai beaucoup plus l'habitude de Borland...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 /* ----------------------------------------------------------------------- * Paramics Programmer API (paramics-support@quadstone.com) * Quadstone Ltd. Tel: +44 131 220 4491 * 16 Chester Street Fax: +44 131 220 4492 * Edinburgh, EH3 7RA, UK WWW: http://www.paramics-online.com * ----------------------------------------------------------------------- */ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <math.h> #include "programmer.h" // --------------------------------------------------------------------- // call api_setup once when the full network has been opened // --------------------------------------------------------------------- void qpx_NET_postOpen(void) { qps_GUI_printf("Paramics Programmer API: Hello World!\n"); qps_GUI_addTool("Outil"); } // --------------------------------------------------------------------- // Called when a layer has been toggled in the Layer Selector. // --------------------------------------------------------------------- void qpx_GUI_tool(char *name, Bool on) { if(strcmp(name,"Outil")==0) { qps_GUI_printf("Clic sur outil\n"); int parametre;//paramètre à regler //ici, appel à une boite de dialogue ? } }
J'ai trouvé cet exemple de code. Je ne comprends pas cette histoire de AFX_MANAGE_STATE, et surtout, je ne sais pas comment créer l'objet CMyLocalDialog dlg.
Y a-t-il une solution rapide ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 extern __declspec(dllexport) void ShowEditDialog(int &MyData1, int &MyData2) { //ensure we are using our own resources AFX_MANAGE_STATE(AfxGetStaticModuleState()); CMyLocalDialog dlg; dlg.Arg1 = MyData1; //specific local data for MyLocalDialog dlg.Arg2 = MyData2; dlg.DoModal(); MyData1 = dlg.Arg1; //data after processing MyData2 = dlg.Arg2; }
Sinon, par quel tutoriel dois-je commencer ?
Merci d'avance !
Partager