Closed Thread
Results 1 to 3 of 3

determine Screen size

  1. #1
    Jim
    Guest

    determine Screen size

    Hello (again, my first attempt at this post went astray I guess)


    Is there a way in VB (excel) to determine the screen size/resolution so
    that I can reposition my userforms to look right when run on different
    screens/computers. Some of the people that have to use this spreadsheet
    have smaller screens and some have a "portrait" and others with
    "landscape" orientation of the monitors.

    Thanks

    Jim

  2. #2
    Tom Ogilvy
    Guest

    re: determine Screen size

    http://support.microsoft.com/?id=148395
    ACC: How to Determine the Current Screen Resolution (95/97)


    '*****************************************************************
    ' DECLARATIONS SECTION
    '*****************************************************************
    Option Explicit
    Type RECT
    x1 As Long
    y1 As Long
    x2 As Long
    y2 As Long
    End Type
    ' NOTE: The following declare statements are case sensitive.
    Declare Function GetDesktopWindow Lib "User32" () As Long
    Declare Function GetWindowRect Lib "User32" _
    (ByVal hWnd As Long, rectangle As RECT) As Long
    '*****************************************************************
    ' FUNCTION: GetScreenResolution() ' ' PURPOSE:
    ' To determine the current screen size or resolution. '
    ' RETURN:
    ' The current screen resolution. Typically one of the following:
    ' 640 x 480 ' 800 x 600 ' 1024 x 768 '
    '*****************************************************************
    Function GetScreenResolution() As String
    Dim R As RECT
    Dim hWnd As Long
    Dim RetVal As Long
    hWnd = GetDesktopWindow()
    RetVal = GetWindowRect(hWnd, R)
    GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
    End Function


    ============== Another version =================
    Posted by Laurent Longre, Programming 06/10/99

    Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
    ByVal nIndex As Long) As Long
    Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
    Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
    ByVal hdc As Long) As Long

    Sub Test()
    Dim DC As Long
    DC = GetDC(0)
    MsgBox "Resolution : " & GetDeviceCaps(DC, 8) _
    & " * " & GetDeviceCaps(DC, 10) & " pixels"
    ReleaseDC 0, DC
    End Sub
    ==================

    Option Explicit

    Private Declare Function GetSystemMetrics _
    Lib "user32" (ByVal nIndex As _
    Long) As Long

    Private Const SM_CXSCREEN = 0
    Private Const SM_CYSCREEN = 1

    Public Function GSR() As String
    GSR = CStr(GetSystemMetrics(SM_CXSCREEN)) _
    & "x" & CStr(GetSystemMetrics _
    (SM_CYSCREEN))
    End Function
    ===================

    --
    Regards,
    Tom Ogilvy

    "Jim" <[email protected]> wrote in message
    news:[email protected]...
    > Hello (again, my first attempt at this post went astray I guess)
    >
    >
    > Is there a way in VB (excel) to determine the screen size/resolution so
    > that I can reposition my userforms to look right when run on different
    > screens/computers. Some of the people that have to use this spreadsheet
    > have smaller screens and some have a "portrait" and others with
    > "landscape" orientation of the monitors.
    >
    > Thanks
    >
    > Jim




  3. #3
    Jim
    Guest

    re: determine Screen size

    Tom,


    Once again, I stand in the presence of masters.

    Thanks

    Jim



    "Tom Ogilvy" <[email protected]> wrote in
    news:#[email protected]:

    > From: "Tom Ogilvy" <[email protected]>
    > References: <[email protected]>
    > Subject: Re: Screen size
    > Date: Tue, 21 Jun 2005 15:37:39 -0400
    > Lines: 89
    > X-Priority: 3
    > X-MSMail-Priority: Normal
    > X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
    > X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
    > Message-ID: <#[email protected]>
    > Newsgroups: microsoft.public.excel.programming
    > NNTP-Posting-Host: host-141-116-172-213.ptr.hqda.pentagon.mil
    > 141.116.172.213 Path:
    > border1.nntp.dca.giganews.com!nntp.giganews.com!news.maxwell.syr.edu!ms
    > rn-out!msrtrans!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl Xref:
    > number1.nntp.dca.giganews.com
    > microsoft.public.excel.programming:674087
    >
    > http://support.microsoft.com/?id=148395
    > ACC: How to Determine the Current Screen Resolution (95/97)
    >
    >
    > '*****************************************************************
    > ' DECLARATIONS SECTION
    > '****************************************************************
    > * Option Explicit
    > Type RECT
    > x1 As Long
    > y1 As Long
    > x2 As Long
    > y2 As Long
    > End Type
    > ' NOTE: The following declare statements are case sensitive.
    > Declare Function GetDesktopWindow Lib "User32" () As Long
    > Declare Function GetWindowRect Lib "User32" _
    > (ByVal hWnd As Long, rectangle As RECT) As Long
    > '****************************************************************
    > * ' FUNCTION: GetScreenResolution() ' ' PURPOSE:
    > ' To determine the current screen size or resolution. '
    > ' RETURN:
    > ' The current screen resolution. Typically one of the
    > following: ' 640 x 480 ' 800 x 600 '
    > 1024 x 768 '
    > '****************************************************************
    > * Function GetScreenResolution() As String
    > Dim R As RECT
    > Dim hWnd As Long
    > Dim RetVal As Long
    > hWnd = GetDesktopWindow()
    > RetVal = GetWindowRect(hWnd, R)
    > GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
    > End Function
    >
    >
    > ============== Another version =================
    > Posted by Laurent Longre, Programming 06/10/99
    >
    > Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
    > ByVal nIndex As Long) As Long
    > Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
    > Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
    > ByVal hdc As Long) As Long
    >
    > Sub Test()
    > Dim DC As Long
    > DC = GetDC(0)
    > MsgBox "Resolution : " & GetDeviceCaps(DC, 8) _
    > & " * " & GetDeviceCaps(DC, 10) & " pixels"
    > ReleaseDC 0, DC
    > End Sub
    > ==================
    >
    > Option Explicit
    >
    > Private Declare Function GetSystemMetrics _
    > Lib "user32" (ByVal nIndex As _
    > Long) As Long
    >
    > Private Const SM_CXSCREEN = 0
    > Private Const SM_CYSCREEN = 1
    >
    > Public Function GSR() As String
    > GSR = CStr(GetSystemMetrics(SM_CXSCREEN)) _
    > & "x" & CStr(GetSystemMetrics _
    > (SM_CYSCREEN))
    > End Function
    > ===================
    >
    > --
    > Regards,
    > Tom Ogilvy
    >
    > "Jim" <[email protected]> wrote in message
    > news:[email protected]...
    >> Hello (again, my first attempt at this post went astray I guess)
    >>
    >>
    >> Is there a way in VB (excel) to determine the screen size/resolution
    >> so that I can reposition my userforms to look right when run on
    >> different screens/computers. Some of the people that have to use
    >> this spreadsheet have smaller screens and some have a "portrait" and
    >> others with "landscape" orientation of the monitors.
    >>
    >> Thanks
    >>
    >> Jim

    >
    >
    >
    >



Closed Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1