PlugIn d'une application sans Doc : Il me manque des fonctions....

PlugIn d'une application sans Doc : Il me manque des fonctions.... - C++ - Programmation

Marsh Posté le 20-05-2003 à 11:30:15    

Je fais un plugIn pour le logiciel Digital Micrograph de chez Gatan (www.gatan.com)
 
La doc fournie est en fait une sdk qui présente des exemples de plugin, mais incomplets...
J'ai récupéré un exemple pour modifier les menus de l'application.
J'ai réussi à faire le menu, mais il me manque certaines fonctions, notamment celle pour savoir si une option de menu est active ou non...
La fonction pour activer/désactiver une option est SetEnabled();
J'ai essayé, pour consulter, GetEnabled, IsEnabled, IsWindowEnabled, mais sans résultat...
 
VOici mon code :
 

Code :
  1. class MenuCamera : public Gatan::plugIn::StandardPlugInMenu
  2.   {
  3.     public:
  4.      MenuCamera();
  5.      virtual void Adjust();
  6.      virtual bool DoMenuAction( CommandID action, CommandIndex index );
  7.   };
  8.  
  9.   //ces define représentent les differentes options de menu
  10.   #define CMD_OPENCAMERA 11700
  11.   #define CMD_CLOSECAMERA 11701
  12.   #define CMD_PARAMCAMERA 11702
  13.   #define CMD_STARTACQ 11703
  14.   #define CMD_STOPACQ 11704
  15.  
  16.  
  17.   ///
  18.   /// The following constructor adds two menu items and a divider to
  19.   /// a top-level menu named 'MenuCamera'
  20.   ///
  21.   MenuCamera::MenuCamera()
  22.    : StandardPlugInMenu( "Caméra" )
  23.   {
  24.      AddAction( CMD_OPENCAMERA, 0 );
  25.      AddAction( CMD_CLOSECAMERA, 0 );
  26.      AddBar();
  27.      AddAction( CMD_PARAMCAMERA, 0 );
  28.      AddBar();
  29.      AddAction( CMD_STARTACQ, 0 );
  30.      AddAction( CMD_STOPACQ, 0 );
  31.      
  32.      SetName(CMD_OPENCAMERA, "Démarrer la caméra" );
  33.      SetName(CMD_CLOSECAMERA, "Couper la caméra" );
  34.      SetName(CMD_PARAMCAMERA, "Paramètres..." );
  35.      SetName(CMD_STARTACQ, "Lancer l'acquisition" );
  36.      SetName(CMD_STOPACQ, "Terminer l'acquisition" );
  37.   }
  38.  
  39.   //La fonction Adjust est automatiquement appelée lors du click   
  40.   //sur le menu Camera
  41.   void MenuCamera::Adjust()
  42.   {
  43.             //mon problème est ici. au lieu de true or false, j'aurais
  44.             //préféré une commande de ce style :
  45.             //SetEnabled(CMD_XXX, GetEnabled(CMD_YY));
  46.             // ou encore
  47.             //SetEnabled(CMD_XXX, !GetEnabled(CMD_YY));
  48.    
  49.      SetEnabled( CMD_STARTACQ, false );
  50.      SetEnabled( CMD_STOPACQ, false );
  51.      SetEnabled( CMD_CLOSECAMERA, false );
  52.      SetEnabled( CMD_PARAMCAMERA, true);
  53.      SetEnabled( CMD_OPENCAMERA, true);
  54.      
  55.   }
  56.  
  57.   ///
  58.   /// 'DoMenuAction' is called whenever the user selects a menu item.
  59.   /// The action specified when the menu item was created is passed in,
  60.   /// and the method should use this to determine whether to handle the
  61.   /// message.  If the message was handled and no further processing is
  62.   /// allowed, return true.
  63.   ///
  64.   bool MenuCamera::DoMenuAction( CommandID action, CommandIndex /*index*/ )
  65.   {
  66.      bool handled = false;
  67.      switch( action )
  68.      {
  69.         case CMD_OPENCAMERA:
  70.         {
  71.            DM::Result( "Démarrage de la caméra...\n" );
  72.            handled = true;
  73.         } break;
  74.         case CMD_CLOSECAMERA:
  75.         {
  76.            DM::Result( "Fermeture de la caméra...\n" );
  77.            handled = true;
  78.         } break;
  79.         case CMD_PARAMCAMERA:
  80.         {
  81.            DM::Result( "Paramétrage de la caméra...\n" );
  82.            handled = true;
  83.         }break;
  84.         case CMD_STARTACQ: 
  85.         {
  86.            DM::Result( "Début de l'acquisition...\n" );
  87.            handled = true;
  88.         }break;
  89.         case CMD_STOPACQ:
  90.         {
  91.            DM::Result( "Fin de l'acquisition...\n" );
  92.            handled = true;
  93.         }break;
  94.         default:break;
  95.      }
  96.      return handled;
  97.   }


 

Reply

Marsh Posté le 20-05-2003 à 11:30:15   

Reply

Marsh Posté le 20-05-2003 à 13:18:41    

http://www.dependencywalker.com/
 
Charge les dlls de l'application et ça te donnera les fonctions exportées. Charge les plugins, tu verras les fonctions importées.

Reply

Marsh Posté le 20-05-2003 à 14:54:02    

Oui, mais la j'ai pas trouvé, pourtant j'ai tout fouillé.
J'ai meme pas trouvé "setEnabled"...

Reply

Marsh Posté le 20-05-2003 à 16:04:28    

bon j'ai trouvé.
En fait il fallait chercher dans les .h fournis par Gatan pour les plugins.
La fonction que je cherche n'existe pas. Apparement, on ne peut se servir que de quelques fonctions, et ce n'est vraiment pas complet... C'est pourri...
 
Topic terminé...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed