Jump to content
Fivewin Brasil

Controlar o Mouse.


kapiaba

Recommended Posts

// https://forums.fivetechsupport.com/viewtopic.php?f=6&t=2381&start=0

// C:\FWH\SAMPLES\MOUSE01.PRG - By Rossine.

#Include "FiveWin.ch"

FUNCTION Main()

   LOCAL oDlg, oBrush, oFont, oBtn

   DEFINE BRUSH oBrush FILE "..\bitmaps\sea.bmp" RESIZE

   DEFINE FONT  oFont  NAME "TAHOMA" SIZE 0, -16 BOLD

   DEFINE DIALOG oDlg FROM 0, 0 TO 400, 600 PIXEL BRUSH oBrush FONT oFont    ;
      TRANSPARENT

   oDlg:lHelpIcon := .F.

   // Posiciona o cursor do mouse
   @10, 10 BUTTON " Posicionar " OF oDlg ACTION SetCursorPos( 200, 300 ) PIXEL

   // Mostra o Mouse na Tela
   @30, 10 BUTTON " Mostar " OF oDlg ACTION SHOW_MOUSE() PIXEL

   // Esconde o Mouse nesta Dialog
   @50, 10 BUTTON " Esconder " OF oDlg ACTION HIDE_MOUSE() PIXEL

   // Confina o Mouse em uma certa posicao da tela
   @70, 10 BUTTON " Confinar " OF oDlg ACTION clipcursor( 10, 10, 10, 10 )   ;
      PIXEL

   // Confina o Mouse em uma certa posicao da tela
   @90, 10 BUTTON " Sair Confinamento " OF oDlg ;
      ACTION ( ClipCursor( 0, 0, 800, 600 ), setcursorpos( 400, 300 ) ) PIXEL


   @ 139.5, 130 BTNBMP oBtn PROMPT "&EXIT" FILENAME "..\BitMaps\Exit.bmp"    ;
      SIZE 35, 35 OF oDlg PIXEL NOBORDER TOP 2007 FLAT FONT oFont            ;
      COLOR CLR_HRED, CLR_WHITE ACTION( oDlg:End() )
      
   oBtn:lCancel  := .T.
   oBtn:nRound   := 60

   ACTIVATE DIALOG oDlg CENTERED

   /*
   oFont:End()
   oBrush:End()
   */
   /*
   RELEASE BRUSH oBrush
   RELEASE FONT oFont
   */

   // Direto:
   IIF( HB_ISOBJECT( oBrush ), oBrush:End(), ) ; oBrush := nil
   IIF( HB_ISOBJECT( oFont ), oFont:End(), ) ; oFont := nil

RETURN NIL

FUNCTION HIDE_MOUSE()

   LOCAL ST_CUR

   WHILE( .T. )

      SYSREFRESH()

      ST_CUR := ShowCursor( 0 )

      IF ST_CUR < 0 // Enquanto o Status do ponteiro nao for Menor que Zero

         EXIT

      ENDIF

   ENDDO

RETURN NIL

FUNCTION SHOW_MOUSE()

   LOCAL ST_CUR

   WHILE( .T. )

      SYSREFRESH()

      ST_CUR := ShowCursor( 1 )

      IF ST_CUR >= 0 // Enquanto o Status do ponteiro for Maior ou igual a Zero

         EXIT

      ENDIF

   ENDDO

   RETURN NIL

#pragma BEGINDUMP

#include "windows.h"
#include "hbapi.h"

HB_FUNC( CLIPCURSOR )
{
     RECT rct;

     rct.left = hb_parnl( 1 );
     rct.top = hb_parnl( 2 );
     rct.right = hb_parnl( 3 );
     rct.bottom = hb_parnl( 4 );

     hb_retl( ClipCursor( &rct ) );
}

#pragma ENDDUMP

// FIN / END

Regards, saludos.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...