Alguien sabe alguna forma fácil de hacer que el ratón no pueda salir de los límites de un diálogo. Supongo que deberá utilizarse SetCapture() pero no he conseguido implementar nada que funciona.
Gracias
Rafael
IF r <= 0
MoverCursorA(0,c)
ENDIF
IF c <= 0
MoverCursorA(r,0)
ENDIF
#include "fivewin.ch"
*************
function MAIN
*************
local oDlg
define dialog oDlg from 0, 0 to 400, 600 pixel
* 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
activate dialog oDlg centered
return NIL
*******************
function HIDE_MOUSE
*******************
local ST_CUR
do while .T.
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
do while .T.
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
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 77 guests