Appel d'une boite de dialogue depuis une dll
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
Code:
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 ?
}
} |
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...
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.
Code:
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;
} |
Y a-t-il une solution rapide ?
Sinon, par quel tutoriel dois-je commencer ? :aie:
Merci d'avance !