91 lines
2.2 KiB
C++
91 lines
2.2 KiB
C++
|
//+---------------------------------------------------------------------
|
||
|
//
|
||
|
// File: himetric.cxx
|
||
|
//
|
||
|
// Contents: Routines to convert Pixels to Himetric and vice versa
|
||
|
//
|
||
|
//----------------------------------------------------------------------
|
||
|
|
||
|
#include "headers.hxx"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
#define HIMETRIC_PER_INCH 2540L
|
||
|
|
||
|
//+---------------------------------------------------------------
|
||
|
//
|
||
|
// Function: HimetricFromHPix
|
||
|
//
|
||
|
// Synopsis: Converts horizontal pixel units to himetric units.
|
||
|
//
|
||
|
//----------------------------------------------------------------
|
||
|
|
||
|
long
|
||
|
HimetricFromHPix(int iPix)
|
||
|
{
|
||
|
HDC hdc = GetDC(NULL);
|
||
|
if (!hdc)
|
||
|
return 0;
|
||
|
int iPPLI = GetDeviceCaps(hdc, LOGPIXELSX);
|
||
|
ReleaseDC(NULL, hdc);
|
||
|
|
||
|
return (HIMETRIC_PER_INCH * (long)iPix)/(long)iPPLI;
|
||
|
}
|
||
|
|
||
|
//+---------------------------------------------------------------
|
||
|
//
|
||
|
// Function: HimetricFromVPix
|
||
|
//
|
||
|
// Synopsis: Converts vertical pixel units to himetric units.
|
||
|
//
|
||
|
//----------------------------------------------------------------
|
||
|
|
||
|
long
|
||
|
HimetricFromVPix(int iPix)
|
||
|
{
|
||
|
HDC hdc = GetDC(NULL);
|
||
|
if (!hdc)
|
||
|
return 0;
|
||
|
int iPPLI = GetDeviceCaps(hdc, LOGPIXELSY);
|
||
|
ReleaseDC(NULL, hdc);
|
||
|
return (HIMETRIC_PER_INCH * (long)iPix)/(long)iPPLI;
|
||
|
}
|
||
|
|
||
|
//+---------------------------------------------------------------
|
||
|
//
|
||
|
// Function: HPixFromHimetric
|
||
|
//
|
||
|
// Synopsis: Converts himetric units to horizontal pixel units.
|
||
|
//
|
||
|
//----------------------------------------------------------------
|
||
|
|
||
|
int
|
||
|
HPixFromHimetric(long lHi)
|
||
|
{
|
||
|
HDC hdc = GetDC(NULL);
|
||
|
if (!hdc)
|
||
|
return 0;
|
||
|
int iPPLI = GetDeviceCaps(hdc, LOGPIXELSX);
|
||
|
ReleaseDC(NULL, hdc);
|
||
|
return (int)(( (iPPLI * lHi) + (HIMETRIC_PER_INCH / 2) )/HIMETRIC_PER_INCH);
|
||
|
}
|
||
|
|
||
|
//+---------------------------------------------------------------
|
||
|
//
|
||
|
// Function: VPixFromHimetric
|
||
|
//
|
||
|
// Synopsis: Converts himetric units to vertical pixel units.
|
||
|
//
|
||
|
//----------------------------------------------------------------
|
||
|
|
||
|
int
|
||
|
VPixFromHimetric(long lHi)
|
||
|
{
|
||
|
HDC hdc = GetDC(NULL);
|
||
|
if (!hdc)
|
||
|
return 0;
|
||
|
int iPPLI = GetDeviceCaps(hdc, LOGPIXELSY);
|
||
|
ReleaseDC(NULL, hdc);
|
||
|
return (int)(( (iPPLI * lHi) + (HIMETRIC_PER_INCH / 2) )/HIMETRIC_PER_INCH);
|
||
|
}
|
||
|
|