FR2665552A1 - Procede de retaillage ou de deplacement de fenetres. - Google Patents
Procede de retaillage ou de deplacement de fenetres. Download PDFInfo
- Publication number
- FR2665552A1 FR2665552A1 FR9009884A FR9009884A FR2665552A1 FR 2665552 A1 FR2665552 A1 FR 2665552A1 FR 9009884 A FR9009884 A FR 9009884A FR 9009884 A FR9009884 A FR 9009884A FR 2665552 A1 FR2665552 A1 FR 2665552A1
- Authority
- FR
- France
- Prior art keywords
- window
- abms
- messages
- windows
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000008569 process Effects 0.000 title claims abstract description 10
- 230000009471 action Effects 0.000 claims abstract description 22
- 230000007935 neutral effect Effects 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 87
- 238000012545 processing Methods 0.000 claims description 44
- 238000012360 testing method Methods 0.000 claims description 19
- 238000006073 displacement reaction Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000011282 treatment Methods 0.000 claims description 4
- 238000006386 neutralization reaction Methods 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 2
- 230000004913 activation Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 231100000176 abortion Toxicity 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Procédé de retaillage ou de déplacement de fenêtres dans une application "Windows", caractérisé en ce qu'il consiste à interposer entre "Windows" (1) et les différentes applications (20, 21, 22) tournant sous "Windows" des filtres (4) interceptant des messages particuliers, à traiter par une application spécifique (5) ces messages et à renvoyer à "Windows" un message neutre "WM-ENTERIDLE" qui ne provoque aucune action de la part de "Windows" et ne bloque pas le fonctionnement des autres applications.
Description
PROCEDE DE RETAILLAGE OU DE DEPLACEMENT DE FENETRES.
L'invention concerne un procédé de retaillage ou de
déplacement de fenêtres.
Un procédé de retaillage ou de déplacement de fenêtre est connu, notamment par le logiciel multitâches multifenêtres "Windows" de Microsoft Ce type de logiciel présente l'inconvénient dans le cas du retaillage ou du déplacement d'une fenêtre de bloquer l'évolution des applications qui
tournent dans les autres fenêtres.
La présente invention a pour but de pallier cet inconvénient. Ce but est atteint par le fait que le procédé de retaillage ou de déplacement de fenêtres dans une application "Windows" consiste à interposer entre "Windows" et les différentes applications tournant sous "Windows" des filtres interceptant des messages particuliers, à traiter par une application spécifique ces messages et à renvoyer à "Windows" un message neutre qui ne provoque aucune action de la part de "Windows" et ne bloque pas le fonctionnement
des autres applications.
Selon une autre particularité, le traitement effectué par l'application spécifique consiste à traiter chacun des événements particuliers pouvant intervenir et correspondant potentiellement à un évènement de déplacement de la fenêtre ou de retaillage d'une fenêtre, et au cours de ce traitement à faire appel à des fonctions spécifiques permettant d'une part d'initialiser un certain nombre de paramètres W Top, W Right, W Bottom, W Left, W Caption, Frm Cur Pos, h Wnd Curr conservés jusqu'à l'occurence d'un
évènement ultérieur qui provoquera la fin du traitement.
Selon une autre particularité, les paramètres conservés sont constitués par: "h_Wnd Curr" = "h Wnd Current, qui est une variable permettant de savoir qu'une action a été engagée sur une fenêtre quelconque; "b_Loaded Icon,pour mémoriser qu'une icône a été chargée; "h_Wnd Menu", qui est la variable permettant de savoir, dans le cas d'une icône, si on est dans une phase de déroulement de menu ou de déplacement d'icone; "h-Old Cursor", qui est la variable permettant de mémoriser un identifieur du curseur actif de Windows avant le lancement de l'application et le remplacement par le curseur spécifique de l'application "w CX Screen", "w CY Screen", "w C Xframe", "w CY Min Heigth", "w CX Min Width", qui sont respectivement les variables de coordonnées de la fenêtre en cours de retaillage, de cadre et de largeur mimimum; "Frm_Cur Pos", qui est la variable de position courante du cadre; "Mse_Cur Pos", qui est la variable de position courante de la souris; "w Left", "w Top", "w Right", "w Bottom", "w Caption", qui sont les variables de direction utilisées dans le calcul des coordonnées de la nouvelle fenêtre et les tests de direction; "Wnd_Start Pos", qui est la variable de définition de la position initiale de la fenêtre; "Mse Start Pos", qui est la variable de définition de la position initiale du curseur; "b Cursor" et "b Loaded Icon", qui sont des variables
booléennes supposées fausses au départ.
Selon une autre particularité, les filtres sont en nombre de 2 Un premier "WM_GETMESSAGE" permettant de recevoir les messages postés par les interruptions hardware, tels que:
MNCLBUTTONDOWN
WMMOUSEMOVE
WM KEYDOWN
WMSYSKEYDOWN
et un deuxième filtre "WH_CALLWNDPROC" permettant de filtrer et de recevoir les messages envoyés à la méthode, tels que:
WMSYSCOMMAND
WMACTIVATEAPP
WMNCACTIVATE
WMACTIVATE.
Selon une autre particularité, l'interception d'un message déclenche le traitement d'un programme spécifique à chaque message et fait intervenir les paramètres conservés et des fonctions principales de traitement, telles que: ABMS Init pour initialiser un traitement, ABMS Move pour effectuer le déplacement de la fenêtre, et ABMS End pour terminer un traitement,
qui elles-mêmes font appel à des fonctions utilitaires.
Selon une autre particularité, la fonction ABMS Init est mise en oeuvre uniquement pour le traitement des messages "WM_NCLBUTTONDOWN" et "SC_SIZE" qui est un message
dépendant de "WM_SYSCOMMAND".
Selon une autre particularité, la fonction ABMS End est mise en oeuvre uniquement pour le traitement des messages "WMLBUTTONUP" et "VK ESCAPE", VK-RETURN" qui dépendent de
"WMSYSKEYDOWN".
Selon une autre particularité, la fonction ABMS Move est mise en oeuvre uniquement pour le traitement des messages "WMMOUSEMOVE, MK_LEFT, VKUP, VK_RIGHT et VK_DOWN" qui
sont des messages dépendant de "WM_SYSKEYDOWN".
Selon une autre particularité, la fonction ABMS Init consiste à approprier les messages souris par l'instruction "SETCAPTURE", puis à regarder si la fenêtre est une fenêtre fille d'une fenêtre mère, c'est-à- dire inscrite dans la fenêtre mère pour limiter les mouvements de la fenêtre fille, puis à initialiser les coordonnées initiales de la fenêtre et la position du curseur pour devenir les coordonnées courantes et à initialiser les paramètres caractéristiques de la fenêtre (w C Xframe, w CX Min Width,
w_CY Min Heigth).
Selon une autre particularité, le procédé comprend les étapes suivantes passage en mode actif des filtres; mémorisation de l'identifieur de la fenêtre "h Wnd", destinataire du message; mémorisation du type d'action résultant de la zone de clic, cette mémorisation se faisant par la fonction Hit Test et la fonction ABMS Init; appropriation des messages souris ultérieurs pour le compte de la fenêtre en cause premier dessin du cadre fantôme autour de la fenêtre par la procédure Invert Block, neutralisation du message par remplacement et substitution d'un message "WMENTERIDLE" qui n'est pas
traité et ne provoque aucune action de la part de Windows.
Selon une autre particularité, le procédé comprend les étapes suivantes: calcul des coordonnées finales de la fenêtre par la procédure ABMS Comput New Pos, effacement du fantôme par Invert Block; dessin de la fenêtre en position finale par la fonction ABMS Move; remise à O des paramètres de mémorisation par la fonction
ABMS End.
Selon une dernière particularité, le procédé comprend en outre les étapes suivantes: abandon de la propriété des messages souris par l'instruction "Release Capture"
passage du filtre en mode passant.
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la
description ci-après faite en référence aux dessins annexés
dans lesquels: la figure 1 représente le chemin de principe général de l'invention; la figure 2 représente le principe de fonctionnement des filtres de l'invention; la figure 3 représente un tableau des scénarii possibles la figure 4 représente l'organigramme de fonctionnement du programme d'interprétation suite à la mise en place de la fonction de filtrage; les figures 5 à 12 représentent le détail des différentes étapes représentées dans l'organigramme de la figure 4;
la figure 13 représente l'art antérieur à l'invention.
L'invention concerne un perfectionnement à un logiciel multitâches et multifenêtres fonctionnant sur un matériel informatique comportant une unité centrale de traitement ou processeur, un moniteur d'affichage, une ressource clavier
et une souris.
Dans l'art antérieur de la figure 13, représentant le fonctionnement d'un logiciel permettant le déroulement de plusieurs applications avec, pour chaque application, une ou plusieurs fenêtres, on peut constater un certain nombre d'inconvénients Ainsi, dans un environnement "Windows" ou O 52, le noyau ( 1) du logiciel "Windows" émet des messages ( 30, 31) en direction des différentes applications ou tâches (Tl, T 2, T 3), respectivement ( 20, 21, 23) Le noyau ( 1) de "Windows" permet d'adresser des messages ( 30, 31) aux tâches activées, par exemple dans le cas de la figure 13 les tâches (Ti) et (T 3), et d'empiler ces messages adressés à la tâche respective dans une file d'attente respective (Q 1, Q 3) Le noyau ( 1) de "Windows" attribue le processeur de traitement à l'application qui va venir gérer les messages de la file et les traiter, et lorsque la file est épuisée, la tâche rend le processeur au noyau ( 1) de "Windows" pour permettre l'attribution du processeur à une autre application activée Chaque application (Tl, T 3) comporte une fenêtre associée (Fl, F 3) Chaque fenêtre constitue un objet visible ou non A chaque fenêtre est associée une méthode qui constitue le mode d'emploi ou de réaction de la fenêtre aux divers messages qui concernent la fenêtre de l'application Cette méthode est un programme qui traite chacun des messages et réalise des actions en conséquences Ce programme peut choisir de traiter certains de ces messages ou de laisser traiter certains autres par "Windows" Dans ce dernier cas, le programme de l'application prévoit l'envoi d'un message ( 32) vers une fonction ( 13) du noyau ( 1) de "Windows", fonction qui est appelée "default Windows Proc" Le noyau ( 1) de "Windows" sait reconnaître ces messages particuliers et effectue, par exemple dans le cas du retaillage d'une fenêtre ou du déplacement de celle-ci un traitement standard Ainsi, un opérateur qui veut retailler une fenêtre, va agir sur la "souris" du système qui génère par les interruptions du Hardware un certain nombre de messages Ces messages vont être envoyés et empilés dans la file, par exemple (QI), de l'application concernée Le programme, lors du traitement de la file, passe ces messages à la méthode de la fenêtre qui cherche à savoir o se trouve la souris, c'est-à-dire si elle se trouve sur un bord, au milieu, ou sur une zone menu de la fenêtre En fonction de cet endroit, la méthode
génère un certain nombre de messages distincts.
Si la souris est sur un bord de la fenêtre, l'interruption
qui en résulte génère le message "WM_LBUTTONDOWN".
Lorsque la méthode récupère ce message, elle l'envoie à la fonction ( 13) "Def Window Proc" et rend la main à "Windows" "Windows", détectant ce message particulier, s'enquiert de savoir sur quelle zone de la fenêtre il a été obtenu, et selon le cas, génère un certain nombre de messages, tels que "WMSIZE" (correspondant à un retaillage de la fenêtre) ou "WMMOVE" (correspondant à un déplacement de la fenêtre) et se met en attente des messages suivants provenant de la souris de façon à pouvoir les traiter immédiatement. Les messages ( 30, 31) envoyés peuvent être soit des messages système envoyés par le noyau ( 1) de "Windows" directement à une application, soit des messages provenant du Hardware, souvent après une interruption, par exemple messages souris ou messages clavier Lorsque la méthode a envoyé un message à la fonction "Def Wnd Proc", et tant que les autres informations concernant le retaillage ou le déplacement de la fenêtre permettant à la fonction ( 13) de terminer le traitement du message ne sont pas parvenues à cette fonction, le processeur continue d'exécuter cette fonction, n'en sort plus et il se met à attendre les autres messages Ceci a pour inconvénient de bloquer le processus de traitement des autres tâches Cet inconvénient est particulièrement gênant pour des applications temps réel, par exemple, de surveillance en temps réel ou de pilotage d'alarme Dans ce type d'application, il peut arriver qu'une manoeuvre de retaillage ou de déplacement de fenêtre par clavier soit lancée et que l'opérateur dérangé bloque toutes les autres applications pendant tout le temps o il n'a pas eu la possibilité de terminer son action de taillage ou de déplacement d'une fenêtre, en intervenant
sur le clavier ou sur la souris.
L'invention vise donc à éliminer cet inconvénient et propose l'architecture de la figure 1 dans laquelle, entre les différentes applications ( 20, 21, 22) et le noyau ( 1) de "Windows", est placé un filtre ( 4), accroché au noyau "Windows", lequel lors du passage de certains messages va assurer le traitement de ces messages par une application ABMS ( 5) Ainsi, les messages ( 301, 321, 331) envoyés par le noyau "Windows" vers les applications A, B, C ( 20, 21, 22) passent dans le filtre ( 4), et selon l'activation ou la non-activation sont transmis ou traités par ABMS Dans le cas de l'activation du filtre, certains types de messages sont transmis sous forme de messages ( 304) à l'application A, ( 324) à l'application B et ( 314) à l'application C Dans le cas o l'un des messages ( 301, 321, 313) correspond à un événement spécifique ( 50, 51, 52, 53), comme représenté aux figures 2 et 4, ce message est intercepté et traité par
l'application ABMS ( 5), comme on va le voir par la suite.
L'invention repose donc sur l'utilisation des filtres de message fournis par Windows, ces filtres permettant à une application quelconque d'être informée du passage de tous les messages correspondant à un type d'évènement particulier et de les modifier ou les substituer avant
qu'ils ne parviennent à leur véritable destinataire.
L'application ABMS ( 5) utilise donc deux de ces filtres spécifiques Deux filtres sont nécessaires pour couvrir tous les messages possibles dans les cas qui nous intéressent, parce que Windows classe tous les messages par familles de messages et les messages qui nous intéressent appartiennent à deux de ces familles Un filtre "WMGETMESSAGE" ( 400, fig 5) permet de recevoir les
messages postés par les interruptions hardware, c'est-à-
dire la souris ou le clavier, messages qui auraient été normalement déposés dans la queue de l'application Un autre filtre "WH _CALLWNDPROC" ( 401, fig 5) permet de filtrer et de recevoir tous les messages qui seraient envoyés directement à la méthode de l'application Ces filtres sont installés lors de l'initialisation de l'application ABMS, cette installation étant représentée par la référence ( 40) aux figures 2 et 5, et s'effectuant par la fonction "SETWINDOWSHOOK" La cloture de l'application ABMS retire les filtres, ce retrait étant représenté par la référence ( 41) aux figures 2 et 5 et effectué par la fonction "UNHOOKWINDOWSHOOK" Ces filtres installés peuvent être passants, c'està-dire n'affectant pas les messages ou actifs, c'est-à-dire provoquant un traitement particulier survenant d'un certain évènement spécifique Dans le cas o le filtre est passant, les messages ( 301, 321, 311) arrivant dans le filtre seront transmis aux applications sous forme de message distribué ( 304, 324, 314), et dans le cas o le filtre est actif, il
enverra le message à l'application ABMS pour traitement.
Les options prises en compte par l'application ABMS peuvent être décomposées en divers scénarii qui sont classés dans un tableau à trois dimensions (cf figure 3) représentant les actions, les moyens utilisés et les états de la fenêtre manipulée La réalisation de l'application ABMS a nécessité la solution d'un certain nombre de difficultés, certaines générales et rappelées par la suite, d'autres spécifiques d'un scénario et indiquées dans la case correspondante de
la figure 3.
Les difficultés générales concernent la terminaison de l'action lors de l'annulation par la touche ESC A ce -35 moment, la restauration de l'état initial suppose la mémorisation d'un certain nombre d'informations constituées par des variables rémanentes dans la zone de données de l'application ABMS Une autre difficulté est l'interpénétration des scénarii clavier/souris En effet, la frontière entre le scénario clavier et souris n'est pas étanche, une action de reprise avec l'un de ces moyens peut être poursuivie avec l'autre à tout instant ABMS prend en compte cette souplesse Chaque message traité fait évoluer le contexte général de l'application en modifiant le contenu des variables ou en jouant sur des paramètres définis dans la zone de données d'ABMS, et laisse les variables dans un état clairement défini susceptible d'être repris pas n'importe quel autre message Ces variables sont représentées par: "h_Wnd Curr", qui est une variable permettant de savoir qu'une action a été entamée sur une fenêtre; "h_Wnd Menu", qui est la variable permettant de savoir, dans le cas d'une icône, si on est dans une phase de déroulement de menu ou de déplacement d'icone; "h_Old Cursor", qui est la variable permettant de mémoriser un identifieur du curseur actif de Windows avant le lancement de l'application et le remplacement par le curseur spécifique de l'application "w CX Screen", "w CY Screen", "w_C Xframe", "w_CY Min Heigth", "w CX Min Width", qui sont respectivement les variables de coordonnées de la fenêtre en cours de retaillage, de cadre et de largeur mimimum; "Frm Cur Pos", qui est la variable de position courante du cadre; "Mse Cur Pos", qui est la variable de position courante de la souris; "w_Left", "w Top", "w Right", "w_Bottom", "w Caption", qui sont les variables de direction utilisées dans le calcul des coordonnées de la nouvelle fenêtre et les tests de direction; "Wnd Start Pos", qui est la variable de définition de la position initiale de la fenêtre; "Mse Start Pos", qui est la variable de définition de la position initiale du curseur; "b Cursor" et "b Loaded Icon", qui sont des variables
booléennes supposées fausses au départ.
Dans le cas du retaillage d'une fenêtre qui n'est pas une icône effectué uniquement par la souris, l'opérateur doit effectuer les opérations suivantes il positionne le curseur de la souris sur un des bords de la fenêtre, appuie sur le bouton gauche et le maintien enfoncé Il déplace ensuite la souris, ce qui a pour effet de déplacer sur l'écran un des bords du cadre représentant le fantôme de la fenêtre Lorsque l'utilisateur estime avoir atteint la taille désirée, il relâche le bouton gauche et la fenêtre se redessine dans le cadre qui vient d'être redéfini Au début de l'opération, le filtre
installé par ABMS est initiallement dans l'état passant.
Tous les messages de déplacement de la souris émis par le noyau ( 1) de "Windows" sont distribués Lorsque l'opérateur appuie sur le bouton gauche de la souris, le curseur se trouvant sur le bord de la fenêtre, "Windows" génère un message "WMNCLBUTTONDOWN" dont les paramètres contiennent l'identifieur de la fenêtre et une valeur définissant la zone sur laquelle l'évènement s'est produit Les actions de ABMS sont alors les suivantes: passage en mode actif, mémorisation de l'identifieur de la fenêtre HWND, destinataire du message et coordonnées initiales; mémorisation du type d'action résultant de la zone de clic (retaillages gauche, droit, haut, bas, diagonale) ; cette mémorisation se fait par la portion de programme ABMS Hit TEST, portant la référence ( 501) sur la figure 11, et par le programme ABMS Init, portant les références -( 502, 503) sur la figure 7; appropriation des messages souris ultérieurs (par l'instruction SETCAPTURE) pour le compte de la fenêtre en cause; premier dessin du cadre fantôme autour de la fenêtre par la procédure ABMS Invert Block, représentée à la figure 8 par la référence ( 521), qui à chaque mouvement annule le cadre fantôme précédent et redessine le suivant au nouvel emplacement; neutralisation du message par remplacement et substitution d'un message "WM_ENTERIDLE" qui n'est pas
traité et ne provoque aucune action de la part de Windows.
Lorsque le programme ABMS est lancé, une première fonction, représentée à la figure 5 par la référence ( 40), installe ou désinstalle la fonction filtre L'installation de la fonction filtre se fait par la fonction "SETWINDOWSHOOK", et la désinstallation se fait par la fonction "UNHOOKWINDOWSHOOK", comme représenté sur la figure 2 par les références ( 40, 41) Une fois cette fonction filtre activée, tous les messages tels que "WM_SYSCOMMAND,
WM_LBUTTONUP, WM_SYSKEYDOWN, WM_NCL BUTTONDOWN,
WMMOUSEMOVE" sont détournés, traités par le programme ABMS Hook et neutralisés par envoi du message "WMENTERIDLE" de l'application à "Windows" Tous ces messages sont au départ émis par "Windows" à la suite d'une interruption
clavier ou souris.
Ainsi, comme représenté à la figure 4, lorsque le message "WMNCLBUTTONDOWN", référencé ( 50), est émis par "Windows", celui-ci est intercepté par le programme ABMS Hook qui mémorise dans un premier temps ( 504) l'identifieur de la fenêtre, destinataire du message dans la variable "h Wnd Curr", effectue un test pour savoir si la fenêtre est une icône, ce test étant indiqué dans le programme ( 50) de la figure 5 par la ligne ( 500), mémorise le type d'action résultant de la zone de cliquage par la portion de programme ABMS Hit Test ( 501), figure 5, représenté en détail à la figure 11 par la référence ( 501), et lance le sous-programme ABMS Init ( 502, 503), figure 5, représenté en détail par les références ( 502, 503) à la figure 8 Ce programme approprie les messages souris ultérieurs par le message "SETCAPTURE" pour le compte de la fenêtre en cause et détermine les coordonnées initiales de la fenêtre et de la position du curseur La séquence ( 50) de traitement de "WM_NCLBUTTONDOWN" renvoie à la fin du traitement le
message "WM ENTERIDLE".
Le message suivant, envoyé par Windows, peut être un mouvement de la souris, signalé par le message "WM_MOUSE MOVE" et traité par la séquence d'instruction ( 51) de la figure 5 à la fin de laquelle le programme rend la main à Windows par l'envoi du message "WM_ENTERIDLE" L'autre possibilité d'instruction est une instruction de relâchement du bouton de la souris, cette instruction étant signalée par le message Windows "WM_LBUTTONUP", dont la
séquence de traitement ( 52) est représentée à la figure 5.
Cette séquence lance le sous-programme ABMS End qui à la fin rend la main au noyau ( 1) de Windows pour l'envoi du
message "WM_ENTERIDLE".
Dans le cas d'un message "WMMOUSEMOVE" envoyé par Windows, le programme regarde si l'objet n'est pas iconique par la référence ( 510), figure 5; dans le cas o il n'est pas inconique, l'instruction ( 515) regarde si les variables de direction ont été initialisées et dans ce cas lance la fonction ABMS Move ( 511), figure 9, sinon la fonction ABMS Direction ( 512), figure 10, est lancée pour initialiser les variables de direction avec comme paramètres le
résultat de la fonction ABMS Test Direct ( 513), figure 12.
Dans le cas o l'objet est iconique, la séquence lance par l'instruction référencée ( 5111) le chargement de l'icône à la position indiquée par le curseur et la fonction ABMS Load Icon ( 5100) Ensuite, la séquence rend la main à
Windows en envoyant le message "WM_ENTERIDLE".
Lorsque ABMS intercepte un message "WMSYSKEYDOWN", représenté par la référence ( 53) à la figure 4, le traitement d'un tel message met en oeuvre le sous-programme ( 53) qui commence par traiter le cas de l'actionnement d'une touche de retour chariot lors de la réception d'un message "VKRETURN" ou d'échappement représenté par un message "VKESCAPE", et ensuite traite le cas des touches de déplacement à gauche "VKLEFT", vers le haut "VKUP", à droite "VKRIGHT", vers le bas "VK DOWN" Selon le type de touche enfoncée, il effectue le traitement correspondant à un des sous-programmes ( 530) pour le déplacement à gauche, ( 531) pour le déplacement vers le haut, ( 532) pour le déplacement à droite, ( 533) pour le déplacement vers le bas. Comme on l'a expliqué ci-dessus, dès qu'un message est reçu par le filtre, celui- ci est traité, et le programme ABMS, après le traitement correspondant, rend la main au noyau ( 1) de Windows qui peut ainsi redonner la main à une autre application en attendant que le filtre intercepte un nouveau message dont le traitement nécessite l'intervention du programme ABMS Le filtre reste actif jusqu'à ce que l'opérateur relâche le bouton gauche de la souris ou tape "Enter" ou "Esc" Cette action génère un message "WMLBUTTONUP, WMSYSKEYDOWN, VKENTER, VKESCAPE" qui prévoit le changement d'état du filtre ABMS de l'état actif à l'état passant Les actions effectuées au cours de ce changement sont les suivantes: calcul des coordonnées finales de la fenêtre par la
procédure ABMS Comput New Pos, représentée par le sous-
programme ( 5210) de la figure 10; effacement du fantôme par Invert Block; dessin de la fenêtre en position finale remise à zéro des paramètres mémorisés; abandon de la propriété des messages souris par l'instruction "Release Capture";
passage du filtre en mode passant.
Comme on vient de l'expliquer, l'application ABMS, grâce au filtre installé, reçoit les différents messages
"WM_SYSCOMMAND, WM_NCLBUTTONDOWN, WM_MOUSEMOVE,
WM_LBUTTONUP, WM_SYSKEYDOWN, WM_KEYDOWN, WM_ACTIVATEAPP,
WM_NCACTIVATE, WM_ACTIVATE" Cette application substitue à ces messages, à l'intention de Windows, un message neutre tel que "WM_ENTERIDLE" et ensuite procède au traitement de ces messages en faisant appel à différentes fonctions principales de traitement appelées lorsque l'on détecte qu'un traitement est initialisé Ces fonctions principales de traitement sont: la fonction ABMS Init pour initialiser un traitement lors de la réception, par exemple d'un premier "SC_MOVE" ou d'un "SCSIZE" dans un "WMSYSCOMMAND"; Cette fonction ABMS Init consiste à approprier les messages souris par l'instruction "SETCAPTURE", puis à regarder si
la fenêtre est une fenêtre fille d'une fenêtre mère, c'est-
à-dire inscrite dans la fenêtre mère pour limiter les mouvements de la fenêtre fille, puis à initialiser les coordonnées initiales de la fenêtre et la position du curseur pour devenir les coordonnées courantes et à initialiser les paramètres caractéristiques de la fenêtre
(w_CX Frame, w_CX Min Width, w CY Min Height).
puis la fonction ABMS End et la fonction ABMS Move.
En plus de ces trois fonctions principales, il y a des fonctions utilitaires appelées en différents endroits des fonctions principales et qui servent à effectuer les traitements utilitaires Ces fonctions sont: la fonction ABMS Comput New Pos qui sert, lorsqu'on lui donne les coordonnées de la souris, à calculer et mettre à jour les coordonnées de la fenêtre en tenant compte des variables globales et rémanentes Cette fonction ABMS Comput New Pos ( 5210), figure 9, permet de calculer les It nouvelles positions à partir des paramètres W_left, W Caption, W Top, W Right, W_Bottom et les coordonnées de la souris et du cadre de la fenêtre, ainsi qu'à partir des coordonnées minimales en hauteur et en largeur des j fenêtres Elle teste aussi les limites de ces calculs pour s'assurer qu'une fenêtre fille ne sort pas d'une fenêtre
l 10 mère.
la fonction ABMS Direction ( 512),figure 10, sert à déterminer la forme du curseur et à initialiser les
variables de direction en fonction des messages reçus.
Cette fonction ABMS Direction ( 512), figure 10, par exemple dans le cas o le paramètre renvoyé par ABMS Test Direction est D_Top, positionne le paramètre W Top à 1 et accroche la position du curseur au bord supérieur de la fenêtre par l'instruction référencée ( 5120), ensuite la séquence effectue un test sur le paramètre W_Left pour savoir si W Left est initialisé et dans le cas affirmatif, envoie le message "D_TTOBDBLEARROW" pour demander l'affichage du curseur incliné à 45 vers le haut et la droite Si W Left n'est pas initialisé, la séquence regarde si W Right est initialisé et dans ce cas envoie le message "DBTOTDBLEARROW" pour demander l'affichage du curseur incliné vers le haut et la gauche, et dans le cas o le test sur W_Right est négatif, un curseur vertical est
affiché par l'exécution du message "D-VERTDBLEARROW".
la fonction ABMS Hit Test ( 501), figure 11, sert à déterminer à l'initialisation dans quelle zone on a cliqué pour initialiser, dans le cas des mouvements souris, les variables de direction Cette fonction estappelée par ABMS Init dans le cas o on reçoit un "WMNCLBUTTONDOWN" et permet d'initialiser les variables W Top, W_Right,
W_Bottom, W Left et W Caption.
Ainsi, comme on peut le voir à la figure 11 lorsque l'on reçoit un message HT Top Right, qui indique que le coin haut droit a été cliqué par la souris, la fonction ABMS Hit Test met à 1 les variables W-Top et W Right qui permettront par la suite, lors de la réception d'un nouveau message de savoir qu'il y a eu une initialisation dans le coin haut droit de la fenêtre, et que par conséquent, on doit traiter
le déplacement de la fenêtre ou le retaillage de celle-ci.
la fonction ABMS Invert Block, représentée par la référence ( 5030), figure 11, effectue le dessin du rectangle en dessinant quatre rectangles adjacents commandés par la fonction Pat Blt, en fonction des paramètres h DC et des dimensions de la fenêtre représentée par exemple par P Rec Frm left Cette fonction Pat Blt effectue en même temps par la commande DSTINVERT l'inversion du fantôme de la fenêtre. la fonction ABMS Load Cursor ( 5031), figure 11, qui charge le curseur en fonction des paramètres envoyés qui dépendent de la position sur le bord de la fenêtre; ainsi, si les paramètres W Left et W Top sont initialisés à 1, on a affaire au bord gauche haut de la fenêtre, et le curseur initialisé aura une allure de flêche orientée vers le bord
droit inférieur de la fenêtre, c'est-à-dire à 450.
la fonction ABMS Load Icon ( 5100), figure 12, qui permet lorsque l'on déplace une icône statique de remplacer le curseur par l'image de l'icône statique générée par Windows, et dans le cas o on déplace une icône dynamique de remplacer cette image d'icone dynamique par une image
constituée par le curseur.
la fonction ABMS Test Direct, représentée à la référence ( 513) de la figure 12, permet de déterminer le paramètre à renvoyer, par exemple D Left ( 5130), en effectuant un test sur l'information reçue par l'application et envoyée par Windows, constituée par la coordonnée en X de la position de la souris représentée par PMSEPOS X et de comparer cette coordonnée à la valeur de la position gauche de la fenêtre, et dans le cas o la valeur de la coordonnée en X de la souris est inférieure à l'abscisse du bord gauche de la fenêtre, cette fonction retourne le message D Left à l'application Cette fonction est utilisée en conjonction
avec la fonction ABMS Direction.
la fonction ABMS Move ( 511), figure 9, permet d'effectuer le mouvement de la fenêtre en inversant le fantôme de la fenêtre par la fonction ABMS Invert Block, représentée par la référence ( 5030) aux figures 9 et 11, puis ensuite de calculer la nouvelle position de la fenêtre par la fonction ABMS Comput New Pos ( 5210), et enfin d'inverser le fantôme de la fenêtre pour la nouvelle position calculée, représentée
par la référence ( 5112).
la fonction ABMS End ( 521), figure 8, termine le processus en regardant par l'instruction ( 5211) si la fenêtre est iconique Si elle n'est pas iconique, on termine par une fin normale ( 5212), c'est-à-dire en lançant la fonction ABMS Comput New Pos ( 5210), sinon le curseur reprend par l'instruction ( 5213) la position initiale qu'il avait au départ Cette fonction permet également par la séquence ( 5214) de déterminer si la fenêtre en traitement est une fenêtre fille et dans ce cas de convertir les coordonnées avant un mouvement De même cette fonction, si nécessaire, restaure par la séquence ( 5215) le curseur et remet par la
séquence ( 5216) les paramètres à 0.
L'application par le filtre Cal Msg Hook permet de filtrer et recevoir les messages qui auraient été envoyés directement à la méthode de l'application, entre autres les messages
"WMSYSCOMMAND, WMACTIVATEAPP, WMNCACTIVATE,
WMACTIVATE" Le traitement du message "WMSYSCOMMAND", représenté en ( 54), peut se décomposer en un traitement,
soit d'un message "SCMOVE", soit d'un message "SCSIZE".
Le message "SCSIZE" positionne les paramètres WçCaption à 1, et le message de retaillage de fenêtre "SC_SIZE"
provoque le traitement représenté par la référence ( 540).
Lorsque l'application reçoit un message de retaillage de la fenêtre, elle demande ( 5401) la position du curseur en imposant que celle-ci soit celle de la souris Ensuite, cette procédure lance en ( 5402) la fonction ABMS Init et la position du curseur ( 5403) est mise en accord avec l'action effectuée et en fin de traitement l'application renvoie à Windows le message "WM_ENTERIDLE", référencé 541, qui se substitue ainsi au message "WM_SYSCOMMAND" De même, le filtre Get Msg Hook filtre les messages
"WM_NCLBUTTONDOWN, WMMOUSEMOVE, WM_LBUTTONUP, WM_KEYDOWN,
WM_SYSKEYDOWN" Lorsqu'un tel message "WM_NCLBUTTONDOWN" arrive à l'application ABMS, on regarde par l'instruction
référencée 504 s'il s'agit d'un déroulement de menu ou non.
S'il ne s'agit pas d'un déroulement de menu, on regarde si on travaille pour une icône par la référence 500 Si on ne travaille pas pour une icône, on regarde si les paramètres ont été initialisés par la fonction ABMS Hit Test ( 501) Si les paramètres n'ont pas été initialisés, on lance la fonction ABMS Init ( 502, 503) en rangeant dans le point les coordonnées en X et en Y fournies par le paramètre message, et ensuite on envoie à Windows le message "WM_ENTERIDLE" ( 505) pour lui rendre la main Dans le cas d'un message "WM_MOUSEMOVE" envoyé par windows, le programme regarde si l'objet n'est pas iconique par la référence ( 510), figure , dans le cas o il n'est pas iconique, l'instruction ( 515) regarde si les variables de direction ont été initialisées et dans ce cas lance la fonction ABMS Move ( 511), figure 9, sinon la fonction ABMS Direction ( 512), figure 10, est lancée pour initialiser les variables de direction avec comme paramètres le résultat de la fonction ABMS Test Direct ( 513), figure 12 Dans le cas o l'objet est iconique, la séquence lance par l'instruction référencée ( 5111) le chargement de l'icône à la position indiquée par le curseur et la fonction ABMS Load Icon ( 5100) Ensuite, la séquence rend la main à Windows en envoyant le message
"WMENTERIDLE".
Dans le cas o l'on reçoit le message "WMLBUTTONUP" ( 52) de l'application, on regarde si l'opérateur a effectué un déroulement de menu par la référence ( 520), sinon l'application regarde si la coordonnée de la fenêtre correspond à celle de la souris et lance la fonction ABMS End ( 521) pour ensuite envoyer à Windows le message
"WMENTERIDLE".
Dans le cas des messages envoyés à la suite de l'actionnement d'une touche, l'application commence à la référence 534 par traiter le cas des touches d'avortement constituées par les touches d'échappement (VK-ESCAPE) et de retour chariot (VK-RETURN) Si on n'est pas dans ce cas là et que l'application a reçu par exemple le message VK Left, l'application regarde tout d'abord par la séquence référencée 530 si l'on est iconique, et charge l'icône par la fonction ABMS Load Icon ( 5100), regarde ensuite par l'instruction ( 5301) si les paramètres W Caption, W Left, W Right ont été initialisés et dans ce cas, déplace l'icône ou donne la grandeur réelle à celle-ci par la séquence
( 5302) Dans le cas ou on N est pas iconique à ce moment-
là, on lance la fonction ABMS Move et on donne à la position du curseur la position de la souris Autrement, ABMS lance la fonction ABMS Direction et ensuite renvoie à Windows le
message "WMENTERIDLE".
Le fonctionnement des autres parties du programme traitant les différents évènements pouvant intervenir et faisant appel aux fonctions de traitement principales ou aux
fonctions utilitaires peut être déduit des explications ci-
dessus et du listing figurant dans les figures.
Toute modification à la portée de l'homme de métier fait
également partie de l'esprit de l'invention.
Claims (10)
1 Procédé de retaillage ou de déplacement de fenêtres dans une application "Windows", caractérisé en ce qu'il consiste à interposer entre "Windows" ( 1) et les différentes applications ( 20, 21, 22) tournant sous "Windows" des filtres ( 4) interceptant des messages particuliers, à traiter par une application spécifique ( 5) ces messages et à renvoyer à "Windows" un message neutre "WM-ENTERIDLE" qui ne provoque aucune action de la part de "Windows" et ne
bloque pas le fonctionnement des autres applications.
2 Procédé selon la revendication 1, caractérisé en ce que le traitement effectué par l'application spécifique consiste à traiter chacun des événements particuliers pouvant intervenir et correspondant potentiellement à un événement de déplacement de la fenêtre ou de retaillage d'une fenêtre, et au cours de ce traitement à faire appel à des fonctions spécifiques permettant d'une part d'initialiser un certain nombre de paramètres "w Top, w_Right, w_Bottom, w Caption, Frm Cur Pos, h_Wnd Curr" conservés jusqu'à l'occurence d'un évènement ultérieur qui
provoquera la fin du traitement.
3 Procédé selon la revendication 2, caractérisé en ce que les paramètres conservés sont constitués par: "h_Wnd Curr", qui est une variable permettant de savoir qu'une action a été entamée sur une fenêtre; "b Loaded Icon", pour mémoriser qu'une icône a été chargée; "h_Wnd Menu", qui est la variable permettant de savoir, dans le cas d'une icône, si on est dans une phase de déroulement de menu ou de déplacement d'icone; "h-Old Cursor", qui est la variable permettant de mémoriser un identifieur du curseur actif de Windows avant le lancement de l'application et le remplacement par le curseur spécifique de l'application; "w_CX Screen", "w_CY Screen", "w_C Xframe", "w_CY Min Heigth", "w CX Min Width", qui sont respectivement les variables de coordonnées de la fenêtre en cours de retaillage, de cadre et de largeur mimimum; "Frm_Cur Pos", qui est la variable de position courante du cadre; "Mse_Cur Pos", qui est la variable de position courante de la souris; "w Left", "w Top", "w Right", "w_Bottom", "w Caption", qui sont les variables de direction utilisées dans le calcul des coordonnées de la nouvelle fenêtre et les tests de direction; "Wnd_Start Pos", qui est la variable de définition de la position initiale de la fenêtre; "Mse_Start Pos", qui est la variable de définition de la position initiale du curseur; "b_Cursor" et "b_Loaded Icon", qui sont des variables
booléennes supposées fausses au départ.
4 Procédé selon la revendication 1 ou 3, caractérisé en ce
que les filtres sont en nombre de 2.
un premier WH_GETMESSAGE permettant de recevoir les messages postés par les interruptions hardwate, tels que:
WMNCLBUTTONDOWN
WMMOUSEMOVE
WMKEYDOWN
WMSYSKEYDOWN
et un deuxième filtre WH_CALLWNDPROC permettant de filtrer et de recevoir les messages envoyés à la méthode, tel que: WM_SYSCOMMAND
WM_ACTIVATEAPP
WMNCACTIVATE
WMACTIVATE
Procédé selon la revendication 4, caractérisé en ce que l'interception d'un message déclenche le traitement d'un programme spécifique à chaque message et fait intervenir les paramètres conservés et des fonctions principales de traitement telles que: ABMS Init pour initialiser un traitement; ABMS Move pour effectuer le déplacement de la fenêtre et ABMS End pour terminer un traitement;
et qui elles-mêmes font appel à des fonctions utilitaires.
6 Procédé selon la revendication 5, caractérisé en ce que la fonction ABMS Init est mise en oeuvre uniquement pour le traitement des messages "WM_BUTTONDOWN" et "SC_SIZE" qui
est un message dépendant de "WM_SYSCOMMAND".
7 Procédé selon la revendication 5, caractérisé en ce que la fonction ABMS End est mise en oeuvre uniquement pour le traitement des messages "WM_LBUTTONUP" et "VK_ESCAPE",
"VK_RETURN" qui dépendent de "WM_SYSKEYDOWN".
8 Procédé selon la revendication 5, caractérisé en ce que la fonction ABMS Move est mise en oeuvre uniquement pour le traitement des messages "WM_MOUSEMOVE, VK_LEFT, VKUP, VK_RIGHT et VK_DOWN qui sont des messages dépendant de
WMSYSKEYDOWN.
9 Procédé selon la revendication 6, caractérisé en ce que la fonction ABMS Init consiste à approprier les messages souris par l'instruction SETCAPTURE, puis à regarder si la
fenêtre est une fenêtre fille d'une fenêtre mère, c'est-à-
dire inscrite dans la fenêtre mère pour limiter les mouvements de la fenêtre fille, puis à initialiser les coordonnées initiales de la fenêtre et la position du curseur pour devenir les coordonnées courantes et à initialiser les paramètres caractéristiques de la fenêtre
(w-C Xframe, w CX Mind Width, w_CY Min Heigth).
Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comprend les étapes suivantes, de la part de l'application spécifique: passage en mode actif des filtres; mémorisation de l'identifieur de la fenêtre h_Wnd, destinataire du message; mémorisation du type d'action résultant de la zone de clic, cette mémorisation se faisant par la fonction Hit Test ( 501) et la fonction ABMS Init ( 502, 503); appropriation des messages souris ultérieurs pour le compte de la fenêtre en cause; premier dessin du cadre fantôme autour de la fenêtre par la procédure Invert Block ( 5030); neutralisation du message par remplacement et substitution d'un message "WMENTERIDLE" qui n'est pas
traité et ne provoque aucune action de la part de Windows.
11 Procédé selon la revendication 10, caractérisé en ce qu'il comprend les étapes suivantes: calcul des coordonnées finales de la fenêtre par la procédure ABMS Comput New Pos, effacement du fantôme par Invert Block; dessin de la fenêtre en position finale par la fonction ABMS Move ( 511); remise à O des paramètres de mémorisation par la fonction
ABMS End ( 521).
12 Procédé selon la revendication 11, caractérisé en ce qu'il comprend en outre les étapes suivantes: abandon de la propriété des messages souris par l'instruction Release Capture; passage du filtre ( 4) en mode passant.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9009884A FR2665552B1 (fr) | 1990-08-02 | 1990-08-02 | Procede de retaillage ou de deplacement de fenetres. |
EP19910402070 EP0470881A1 (fr) | 1990-08-02 | 1991-07-24 | Procédé de retaillage ou de déplacement de fenêtres |
CA002066180A CA2066180C (fr) | 1990-08-02 | 1991-07-24 | Procede de retaillage ou de deplacement de fenetres |
PCT/FR1991/000612 WO1992002921A1 (fr) | 1990-08-02 | 1991-07-24 | Procede de retaillage ou de deplacement de fenetres |
JP3513930A JP2925734B2 (ja) | 1990-08-02 | 1991-07-24 | ウィンドウサイズの決定又はウィンドウ移動の方法 |
US08/344,331 US5455904A (en) | 1990-08-02 | 1994-11-22 | Method of sizing or moving windows |
JP10161212A JPH1195889A (ja) | 1990-08-02 | 1998-06-09 | ウィンドウサイズの決定又はウィンドウ移動の方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9009884A FR2665552B1 (fr) | 1990-08-02 | 1990-08-02 | Procede de retaillage ou de deplacement de fenetres. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2665552A1 true FR2665552A1 (fr) | 1992-02-07 |
FR2665552B1 FR2665552B1 (fr) | 1992-10-16 |
Family
ID=9399353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9009884A Expired - Lifetime FR2665552B1 (fr) | 1990-08-02 | 1990-08-02 | Procede de retaillage ou de deplacement de fenetres. |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0470881A1 (fr) |
JP (2) | JP2925734B2 (fr) |
CA (1) | CA2066180C (fr) |
FR (1) | FR2665552B1 (fr) |
WO (1) | WO1992002921A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3592549B2 (ja) * | 1998-09-24 | 2004-11-24 | 株式会社東芝 | 情報処理システム及びシュミレーションシステム |
-
1990
- 1990-08-02 FR FR9009884A patent/FR2665552B1/fr not_active Expired - Lifetime
-
1991
- 1991-07-24 CA CA002066180A patent/CA2066180C/fr not_active Expired - Fee Related
- 1991-07-24 WO PCT/FR1991/000612 patent/WO1992002921A1/fr active Application Filing
- 1991-07-24 EP EP19910402070 patent/EP0470881A1/fr not_active Withdrawn
- 1991-07-24 JP JP3513930A patent/JP2925734B2/ja not_active Expired - Lifetime
-
1998
- 1998-06-09 JP JP10161212A patent/JPH1195889A/ja active Pending
Non-Patent Citations (2)
Title |
---|
COMPUTER, vol. 19, no. 9, septembre 1986, pages 57-67; B.A: MYERS: "A complete and efficient implementation of covered windows" * |
PROCEEDINGS OF THE 1ST INTERNATIONAL CONFERENCE ON COMPUTER WORKSTATIONS, San Jose, CA, novembre 1985, pages 12-21; M.J. GOODFELLOW: "WHIM, the window handler and input manager" * |
Also Published As
Publication number | Publication date |
---|---|
FR2665552B1 (fr) | 1992-10-16 |
JP2925734B2 (ja) | 1999-07-28 |
WO1992002921A1 (fr) | 1992-02-20 |
EP0470881A1 (fr) | 1992-02-12 |
CA2066180C (fr) | 1998-11-03 |
JPH04505681A (ja) | 1992-10-01 |
JPH1195889A (ja) | 1999-04-09 |
CA2066180A1 (fr) | 1992-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788474B2 (en) | Operating system shut down | |
EP0622730B1 (fr) | Encapsulation en objets d'extraits de documents | |
US5611040A (en) | Method and system for activating double click applications with a single click | |
JP2544116B2 (ja) | マルチ処理ウインドウ表示方法 | |
US5455904A (en) | Method of sizing or moving windows | |
US5448695A (en) | Method and apparatus for dynamic visual feedback messaging in a graphical user interface of a data processing system | |
US7533277B2 (en) | Operating system shut down | |
US5437006A (en) | Spreadsheet command/function capability from a dynamic-link library | |
CN108089786A (zh) | 用户界面显示方法、装置、设备及存储介质 | |
EP3215900A1 (fr) | Automatisation de processus robotique | |
JP2000148348A (ja) | 起動中のアプリケーション・プログラムを容易に識別し、かつ終了させることができる方法およびシステム | |
CN113407086B (zh) | 对象拖拽方法、设备和存储介质 | |
WO2017001560A1 (fr) | Automatisation de processus robotique | |
WO2009033218A1 (fr) | Système et procédé permettant de capturer des images numériques | |
CN109145273B (zh) | 一种批注跟随显示方法、装置、设备和存储介质 | |
FR2665552A1 (fr) | Procede de retaillage ou de deplacement de fenetres. | |
CN114995713B (zh) | 显示控制方法、装置、电子设备和可读存储介质 | |
CN115756238A (zh) | 组件的显示方法、装置、电子设备及介质 | |
CN113190158A (zh) | 一种重复截图方法及装置 | |
CN107644072A (zh) | 数据删除方法及装置 | |
CN114527895A (zh) | 一种界面操作方法、装置、设备、终端和存储介质 | |
WO2024078207A1 (fr) | Procédé et appareil d'affichage d'interface, équipement terminal et support de stockage | |
JPH06511337A (ja) | インタラクティブオペレーションのためのポーズユーティリティーを有するコンピュータグラフィックスシステム | |
CN117395493A (zh) | 拍摄控制方法、装置和电子设备 | |
CN117459631A (zh) | 内容共享控制方法、装置、存储介质及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |