************************************************************************************************ * Based on Microsoft Knowledge Base Articles 94927, 210590 * * THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ALL * IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE ARE HEREBY DISCLAIMED. * ************************************************************************************************ * Function to Convert from Pixels to Twips * * Parameters: * pnPixels Value to convert to twips * pcDirection Screen direction; 'H' for horizontal and 'V' for vertical * * Returns: * Twips value * FUNCTION PixelsToTwips LPARAMETERS pnPixels, pcDirection LOCAL lhDeviceHdl, lnPixelsPerInch #DEFINE LOGPIXELSX 88 #DEFINE LOGPIXELSY 90 DECLARE LONG GetDeviceCaps IN "gdi32" LONG hdc, LONG nIndex DECLARE LONG ReleaseDC IN "user32" LONG hwnd, LONG hdc DECLARE LONG GetDC IN "user32" LONG hwnd lhDeviceHdl = GetDC(0) DO CASE CASE pcDirection = "H" && Horizontal lnPixelsPerInch = GetDeviceCaps(lhDeviceHdl,LOGPIXELSX) CASE pcDirection = "V" && Vertical lnPixelsPerInch = GetDeviceCaps(lhDeviceHdl,LOGPIXELSY) ENDCASE lhDeviceHdl = ReleaseDC(0,lhDeviceHdl) RETURN pnPixels * 1440 / lnPixelsPerInch ENDFUNCTo convert Twips to Pixels:
************************************************************************************************ * Based on Microsoft Knowledge Base Articles 94927, 210590 * * THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ALL * IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE ARE HEREBY DISCLAIMED. * ************************************************************************************************ * Function to Convert from Twips to Pixels * * Parameters: * pnTwips Value to convert to pixels * pcDirection Screen direction; 'H' for horizontal and 'V' for vertical * * Returns: * Pixels value * FUNCTION TwipsToPixels LPARAMETERS pnTwips, pcDirection LOCAL lhDeviceHdl, lnPixelsPerInch #DEFINE LOGPIXELSX 88 #DEFINE LOGPIXELSY 90 DECLARE LONG GetDeviceCaps IN "gdi32" LONG hdc, LONG nIndex DECLARE LONG ReleaseDC IN "user32" LONG hwnd, LONG hdc DECLARE LONG GetDC IN "user32" LONG hwnd lhDeviceHdl = GetDC(0) DO CASE CASE pcDirection = "H" && Horizontal lnPixelsPerInch = GetDeviceCaps(lhDeviceHdl,LOGPIXELSX) CASE pcDirection = "V" && Vertical lnPixelsPerInch = GetDeviceCaps(lhDeviceHdl,LOGPIXELSY) ENDCASE lhDeviceHdl = ReleaseDC(0,lhDeviceHdl) RETURN pnTwips / 1440 * lnPixelsPerInch ENDFUNC