FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Client to Screen
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM

Client to Screen

Posted: Tue Apr 08, 2008 09:39 AM
We often find this kind of correction to the coordinates returned by ClientToScreen and SceenToClient functions
      aPoint = ClientToScreen( ::hWnd, aPoint )
      if aPoint[ 1 ] > 32768
         aPoint[ 1 ] -= 65535
      endif
      if aPoint[ 2 ] > 32768
         aPoint[ 2 ] -= 65535
      endif

It is also advised in these forums to use the correction after call to these functions. Why can't the correction be built into the FWH functions ClientToScreen and SceenToClient, so that we do not have to write the extra repetitive code ? Incorporating these corrections in the main code does not break any existing code.
Regards



G. N. Rao.

Hyderabad, India
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Client to Screen

Posted: Tue Apr 08, 2008 01:29 PM
NageswaraRao,

In those circunstances we need a "short" (16 bits) signed value from PRG level.

Maybe we could try to change:
   hb_reta( 2 );
   hb_stornl( pt.x, -1, 2 );
   hb_stornl( pt.y, -1, 1 )

into:
   hb_reta( 2 );
   hb_storni( ( short int ) pt.x, -1, 2 );
   hb_storni( ( short int ) pt.y, -1, 1 )
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion