Voici une méthode permettant d'effectuer une conversion entre un nombre de pixels à l'écran et leur taille en millimètres (mm) et inversement, de connaître le nombre de pixels d'une taille en mm à l'écran.

Conversion entre un nombre de pixels à l'écran et leur taille en millimètres :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
PROCEDURE Pixels_Vers_Mm(LOCAL _iLargeurPixel est un entier,LOCAL _iHauteurPixel est un entier,__rLargeurMm est un réel,__rHauteurMm est un réel)
 
LOCAL
	CONST_HORZSIZE est un entier = 4
	CONST_VERTSIZE est un entier = 6
	CONST_HORZRES est un entier = 8
	CONST_VERTREZ est un entier = 10
 
	iLargeurPixel est un entier
	iHauteurPixel est un entier
	iLargeurMm est un entier
	iHauteurMm est un entier
	rCoefL est un réel
	rCoefH est un réel
 
	iResHandle  est un entier = SysRécupèreDC(0)
 
iLargeurPixel = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_HORZRES) 
iHauteurPixel = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_VERTREZ) 
iLargeurMm    = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_HORZSIZE) 
iHauteurMm    = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_VERTSIZE) 
 
rCoefL = iLargeurPixel/iLargeurMm
rCoefH = iHauteurPixel/iHauteurMm
 
__rLargeurMm = _iLargeurPixel/rCoefL
__rHauteurMm = _iHauteurPixel/rCoefH
Conversion entre une taille en millimètres et un nombre de pixels à l'écran :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
PROCEDURE Mm_Vers_Pixels(LOCAL _rLargeurMm est un réel,LOCAL _rHauteurMm est un réel,__iLargeurPixel est un entier,__iHauteurPixel est un entier)
 
LOCAL
	CONST_HORZSIZE est un entier = 4
	CONST_VERTSIZE est un entier = 6
	CONST_HORZRES est un entier = 8
	CONST_VERTREZ est un entier = 10
 
	iLargeurPixel est un entier
	iHauteurPixel est un entier
	iLargeurMm est un entier
	iHauteurMm est un entier
	rCoefL est un réel
	rCoefH est un réel
 
	iResHandle  est un entier = SysRécupèreDC(0)
 
iLargeurPixel = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_HORZRES) 
iHauteurPixel = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_VERTREZ) 
iLargeurMm    = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_HORZSIZE) 
iHauteurMm    = AppelDLL32("gdi32","GetDeviceCaps",iResHandle,CONST_VERTSIZE) 
 
rCoefL = iLargeurMm/iLargeurPixel
rCoefH = iHauteurMm/iHauteurPixel
 
__iLargeurPixel = _rLargeurMm/rCoefL
__iHauteurPixel = _rHauteurMm/rCoefH
Plus d'informations sur la méthode GetDeviceCaps ici : http://support.microsoft.com/kb/114709/fr

Bonne prog