I cannot vouch for the PointToScreenPixelsX method. When I was doing
'screen work' (quite awhile ago) I used this method to figure out where I
was on the screen in pixels:
Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex
As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As
Long) As Long
Const LOGPIXELSX = 88 ''Index into GetDeviceCaps array for number of pixels
per logical inch along the screen width
Const POINTS_PER_INCH As Long = 72
Function PointsPerPixel() As Double
Dim hDC As Long
Dim lDotsPerInch As Long
hDC = GetDC(0)
lDotsPerInch = GetDeviceCaps(hDC, LOGPIXELSX) ''Get the user's DPI
setting
PointsPerPixel = POINTS_PER_INCH / lDotsPerInch
ReleaseDC 0, hDC
End Function
Sub Test()
MsgBox ActiveWindow.Width / PointsPerPixel ''Screen width in pixels
End Sub
--
Jim
"MrT" <(E-Mail Removed)> wrote in message
news:885ED21B-4933-49CF-89C9-(E-Mail Removed)...
| Jim,
|
| Thanks, but I can't understand why, when the windows is maximized, I get
| 1472 for ActiveWindow.PointsToScreenPixelsX(ActiveWindow.Width) when the
| width of my screen is 1920 pixels (ActiveWindow.Width is 1444.5).
|
| Regards,
|
| MrT
|
| "Jim Rech" wrote:
|
| > Returns the width of a window in points (point: Unit of measure
referring to
| > the height of a printed character. A point equals 1/72 of an inch, or
| > approximately 1/28 of a centimeter.).
| >
| > --
| > Jim
| > "MrT" <(E-Mail Removed)> wrote in message
| > news:FFD41F6C-6A9A-47A6-8957-(E-Mail Removed)...
| > | Hello,
| > |
| > | I can't find the unit in which the ActiveWindow.Width is given.
| > |
| > | If I maximize the window and get the mouse position, I get a
| > | ActiveWindow.Width that is about 1.32 times less the screen size in
| > pixles.
| > | The ratio is about 1.1 if I minimize it.
| > |
| > | Does anyone know what is the unit of the ActiveWindow.Width property?
| > |
| > | Thanks in advance for your insight.
| >
| >
| >
|