Passer au contenu principal
Les Visual Components sont implémentés dans FRE for Windows.
La plupart des fonctionnalités offertes par les Visual Components d’ABBYY FineReader Engine sont accessibles via leur menu contextuel et leur barre d’outils (le cas échéant). Les commandes disponibles dans le menu contextuel et la barre d’outils répondent à la plupart des cas d’usage courants. Toutefois, vous devrez parfois personnaliser leurs éléments pour les adapter à vos besoins. La barre d’outils est disponible pour Image Viewer, Text Editor, Document Viewer. Vous pouvez ajouter de nouveaux boutons à la barre d’outils et supprimer ceux qui sont superflus. Les boutons peuvent être soit prédéfinis, soit créés par vous. Toolbar Le menu contextuel est disponible pour Image Viewer, Zoom Viewer, Text Editor, Document Viewer. Le menu contextuel de chaque composant comprend une partie standard et une partie personnalisée :
  • La partie standard du menu contextuel correspond au menu contextuel affiché par défaut dans le composant. Cette partie ne peut pas être modifiée. Vous pouvez uniquement afficher ou masquer cette partie du menu.
  • La partie personnalisée du menu contextuel peut être modifiée. Par défaut, elle est vide. Vous pouvez y ajouter n’importe laquelle des commandes standard disponibles pour le composant, ainsi que toute commande définie par l’utilisateur. La partie personnalisée du menu contextuel est toujours affichée après la partie standard. Elle peut également être activée ou désactivée.
PopupMenu

Gestion des commandes disponibles

Vous trouverez la liste complète des commandes disponibles dans Visual Components parmi les constantes de l’énumération MenuItemEnum. Les sous-objets Commands des objets ImageViewer, ZoomViewer, DocumentViewer et TextEditor permettent d’accéder aux commandes disponibles dans chaque composant. Les commandes peuvent être appelées de différentes façons :
  • en sélectionnant un élément dans un menu contextuel,
  • en cliquant sur un bouton de la barre d’outils,
  • en appuyant sur une touche de raccourci,
  • en utilisant la méthode DoCommand du sous-objet Commands d’un composant.
Cependant, toutes ces méthodes ne sont pas disponibles pour chaque commande. Consultez la liste des commandes disponibles et les modes d’utilisation de ces commandes dans chaque composant : Pour activer ou désactiver une commande, utilisez la méthode EnableCommand ou DisableCommand de l’objet Commands. Si vous désactivez une commande, aucune des méthodes d’appel disponibles pour cette commande ne fonctionnera.

Ajout de commandes prédéfinies à la barre d’outils

Certaines commandes prédéfinies sont disponibles par défaut dans la barre d’outils, tandis que d’autres peuvent être ajoutées à la barre d’outils d’un composant par le développeur. Consultez la liste des commandes prédéfinies disponibles pour chaque composant. Pour ajouter une commande prédéfinie à une barre d’outils ou la supprimer :
  1. Obtenez l’objet Toolbar via la propriété Toolbar du composant.
  2. Insérez la commande à l’emplacement souhaité dans la barre d’outils à l’aide de la méthode InsertAt de l’objet Toolbar, ou supprimez-la à l’aide de la méthode Delete ou DeleteAt.
Vous pouvez regrouper les boutons de la barre d’outils à l’aide de séparateurs. Utilisez la méthode InsertAt de l’objet Toolbar avec la constante MI_Separator comme paramètre.
// Ajoute la commande prédéfinie MI_InvertImage au début de la barre d’outils d’Image Viewer
private FineReaderVisualComponents.AxImageViewer imageViewer;
imageViewer.Toolbar.InsertAt(FineReaderVisualComponents.MenuItemEnum.MI_InvertImage, 0);
Une fois la commande prédéfinie ajoutée, elle peut être utilisée dans l’application. ABBYY FineReader Engine gère les événements correspondants. Vous pouvez ajouter des fonctionnalités supplémentaires au gestionnaire en utilisant l’événement OnCommand de l’interface ICommandEvents.

Ajout de commandes prédéfinies au menu contextuel

Certaines commandes prédéfinies sont disponibles par défaut dans le menu contextuel — elles constituent la partie standard du menu contextuel. Toutes les autres commandes prédéfinies disponibles dans le composant peuvent être ajoutées à la partie personnalisée du menu contextuel. Pour ajouter une commande prédéfinie à la partie personnalisée d’un menu contextuel ou la supprimer :
  1. Obtenez l’objet PopupMenu via la propriété PopupMenu du composant.
  2. Désactivez l’intégralité de la partie standard du menu contextuel à l’aide de la propriété StandardMenuEnabled de l’objet PopupMenu si vous n’en avez pas besoin. Par défaut, la partie standard est activée.
  3. Activez la partie personnalisée du menu contextuel à l’aide de la propriété CustomMenuEnabled de l’objet PopupMenu.
  4. Insérez une commande à l’emplacement souhaité dans la partie personnalisée du menu contextuel à l’aide de la méthode InsertAt de l’objet PopupMenu, ou supprimez-la à l’aide de la méthode Delete ou DeleteAt.
Vous pouvez regrouper les éléments dans la partie personnalisée du menu contextuel à l’aide de séparateurs. Utilisez la méthode InsertAt de l’objet PopupMenu avec la constante MI_Separator comme paramètre.
// Nous ajoutons la commande prédéfinie MI_InvertImage au début de la partie personnalisée du menu contextuel d’Image Viewer
private FineReaderVisualComponents.AxImageViewer imageViewer;
imageViewer.PopupMenu.StandardMenuEnabled = false;
imageViewer.PopupMenu.CustomMenuEnabled = true;
imageViewer.PopupMenu.InsertAt(FineReaderVisualComponents.MenuItemEnum.MI_InvertImage, 0);
Une fois la commande prédéfinie ajoutée, elle peut être utilisée dans l’application. ABBYY FineReader Engine gère les événements correspondants. Vous pouvez enrichir le gestionnaire avec des fonctionnalités supplémentaires à l’aide de l’événement OnCommand de l’interface ICommandEvents.

Création de commandes personnalisées

Vous pouvez également créer vos propres commandes et les ajouter à une barre d’outils ou à un menu contextuel. L’énumération MenuItemEnum comprend les constantes (MI_CustomCommand1, … MI_CustomCommand10), qui peuvent être utilisées pour définir vos propres commandes. Avant d’ajouter une commande personnalisée, vous devez créer une icône (16х16 px) pour son bouton dans la barre d’outils et définir le texte de la commande. Vous devez ensuite enregistrer la commande dans le composant et l’ajouter à la barre d’outils ou à la partie personnalisée du menu contextuel. Voir ci-dessous pour plus de détails. Pour ajouter une commande personnalisée :
  1. Enregistrez la commande dans le composant. Utilisez la méthode RegisterUserCommand du sous-objet Commands du composant avec l’une des constantes MI_CustomCommand1, … MI_CustomCommand10 comme paramètre. Vous devez également spécifier, dans les paramètres de cette méthode, le chemin d’accès à l’icône, le texte de la commande et le raccourci clavier.
Un raccourci clavier se compose de deux parties : le code de touche virtuelle et les modificateurs de touche (Ctrl, Alt, Shift). Lorsque vous transmettez un raccourci clavier à une méthode FineReader Engine, il doit avoir le même format que la valeur renvoyée (LRESULT) par la fonction Windows SendMessage pour le message HKM_GETHOTKEY. Pour obtenir la valeur du raccourci clavier dans ce format, vous devez placer le code de touche virtuelle du raccourci dans l’octet de poids faible de la valeur et le modificateur de touche, qui spécifie les touches définissant une combinaison de raccourci, dans l’octet de poids fort. Si vous n’avez pas besoin d’utiliser de raccourci clavier pour la commande, passez 0 comme paramètre de la méthode.
  1. Implémentez l’événement OnCommand de l’interface ICommandEvents afin qu’il gère l’événement de la nouvelle commande. Voir Utilisation des objets connectables.
  2. Ajoutez la commande à la barre d’outils ou à la partie personnalisée du menu contextuel du composant. La procédure est la même que pour les commandes prédéfinies d’une barre d’outils ou d’un menu contextuel.
Après cela, la commande peut être utilisée dans votre application.
private FineReaderVisualComponents.AxImageViewer imageViewer;
private FineReaderVisualComponents.AxTextEditor textEditor;
private const int HotkeyShift = 1;
private const int HotkeyControl = 2;
private const int HotkeyAlt = 4;
// Création de la valeur du raccourci clavier
private int makeWord(int keyCode, int modifierFlags)
{
 return (int)((uint)((byte)(keyCode)) | ((uint)((byte)(modifierFlags)) << 8));
}
// Ajout de commandes personnalisées
private void addCommands()
{

 int hotKey = makeWord((int)Keys.B, HotkeyShift);
 imageViewer.Commands.RegisterUserCommand(FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1, "MyCommand", "D:\\img.bmp", hotKey);
 imageViewer.Toolbar.InsertAt(FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1, 0);
 imageViewer.Commands.OnCommand += new FineReaderVisualComponents.DICommandEvents_OnCommandEventHandler( imageViewer_OnCommand );
 hotKey = makeWord((int)Keys.T, HotkeyAlt | HotkeyShift);
 textEditor.Commands.RegisterUserCommand(FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1, "MyTextCommand", "", hotKey);

}
// Gestionnaire de l’événement OnCommand du visualiseur d’images
private void imageViewer_OnCommand( FineReaderVisualComponents.MenuItemEnum command, out bool cancel ){
 if( command == FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1 )
 {
  ...
 }
}
Pour supprimer une commande personnalisée précédemment ajoutée :
  1. Supprimez-la de la barre d’outils ou de la partie personnalisée du menu contextuel. La procédure est la même que pour les commandes prédéfinies d’une barre d’outils ou d’un menu contextuel.
  2. Annulez l’enregistrement de la commande. Utilisez la méthode UnregisterUserCommand du sous-objet Commands du composant.

Voir aussi

Créer une application avec une interface utilisateur graphique