Lorsque vous codez une application 2D ou 3D utilisant un OpenWindowedScreen() et des gadgets conjointement avec un ExamineMouse(), le curseur de la souris est captif dans l'OpenWindowedScreen ce qui oblige l'utilisateur de votre application à utiliser la combinaison de touche Alt + Tab pour accéder aux gadgets ce qui, vous en conviendrez, n'est pas pratique du tout.
J'avais un bout de code que j'ai déja présenté sur ce forum mais qui finalement n'a pas bien fonctionné avec un de mes projets.
Après quelques heures de différents tests avec Gally et Crisot sur FreeChat, nous avons sortis une procédure qui permet de palier à ce que je viens de dire.
Il y a sur ce forum quelques codes qui font la même chose que notre code. Nous avons souhaités quand même vous présenter une solution au gout du jour et sans API. J’espère qu'il vous sera utile.
Code : Tout sélectionner
Procedure ScreenFocus(Window, Left, Top, RightOffset, BottomOffset)
If IsScreenActive()
Protected X = WindowMouseX(Window)
Protected Y = WindowMouseY(Window)
Protected Value.b = Bool(X>Left And Y>Top And X<WindowWidth(Window)-RightOffset-1 And Y<WindowHeight(Window)-BottomOffset-1)
ReleaseMouse(1 - Value)
MouseLocate(X-Left, Y-Top)
ProcedureReturn Value
EndIf
EndProcedure
Si vous avez un souci d'éxécution sous windows 8 ou 10 (lié à DirectX), Selectionner le menu Compilateur - > Option du compilateur :Ligne Bibliothéque sous-Systéme : Tapez OpenGl
http://s242132022.onlinehome.fr/Downloa ... nfocus.zip
Cette procédure fonctionne aussi dans un environnement 2D.