+ Reply to Thread
Results 1 to 6 of 6

Thread: Changing Measurement Units of Form to from Pixels to Twips

  1. #1
    dineshkumaar is offline VB.NET Forum Newbie dineshkumaar is on a distinguished programming path ahead
    .NET Framework
    .NET 3.5 (VS 2008)
    Join Date
    Jun 2009
    Posts
    21
    Reputation
    17

    Question Changing Measurement Units of Form to from Pixels to Twips

    Hi everybody!

    Is there any way so that i can set the measurement unit of a form from Pixels to Twips?

    Regards

    Thanks

  2. #2
    jmcilhinney's Avatar
    jmcilhinney is offline VB.NET Forum Moderator jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute
    .NET Framework
    .NET 3.5 (VS 2008)
    Join Date
    Aug 2004
    Location
    Sydney, Australia
    Age
    41
    Posts
    6,736
    Reputation
    653

    Default

    No, it's not. You'll have to perform the conversion yourself. Here's how it's done when upgrading VB6 code to VB.NET:
    Code:
    Private Shared Sub SetUpTwipsPerPixel(ByVal Optional Force As Boolean = False)
        If (Not Support.m_IsTwipsPerPixelSetUp OrElse Force) Then
            Support.m_TwipsPerPixelX = 0
            Support.m_TwipsPerPixelY = 0
            Try 
                Dim dC As IntPtr = NativeMethods.GetDC(NativeMethods.NullIntPtr)
                If Not dC.Equals(NativeMethods.NullIntPtr) Then
                    Support.m_TwipsPerPixelX = (1440 / CDbl(NativeMethods.GetDeviceCaps(dC, &H58)))
                    Support.m_TwipsPerPixelY = (1440 / CDbl(NativeMethods.GetDeviceCaps(dC, 90)))
                    NativeMethods.ReleaseDC(NativeMethods.NullIntPtr, dC)
                End If
            Catch exception1 As Exception
                ProjectData.SetProjectError(exception1)
                ProjectData.ClearProjectError
            End Try
            Support.m_IsTwipsPerPixelSetUp = True
            If ((Support.m_TwipsPerPixelX = 0) OrElse (Support.m_TwipsPerPixelY = 0)) Then
                Support.m_TwipsPerPixelX = 15
                Support.m_TwipsPerPixelY = 15
                VB6Errors.RaiseError(7, Resources.GetResourceString("Misc_SetUpTwipsPerPixel"))
            End If
        End If
    End Sub
    As you can see, it involves invoking the Windows API. As such, it's a bit of a pain but you can implement something similar yourself.

  3. #3
    JohnH's Avatar
    JohnH is offline VB.NET Forum Moderator JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute
    .NET Framework
    .NET 4.0
    Join Date
    Dec 2005
    Location
    Norway
    Age
    37
    Posts
    10,843
    Reputation
    1443

    Default

    You can reference Microsoft.VisualBasic.Compatibility and use these properties and functions:
    Code:
    Microsoft.VisualBasic.Compatibility.VB6.TwipsPerPixelX 
    TwipsPerPixelX
    TwipsToPixelsX(x)
    TwipsToPixelsY(y)

  4. #4
    dineshkumaar is offline VB.NET Forum Newbie dineshkumaar is on a distinguished programming path ahead
    .NET Framework
    .NET 3.5 (VS 2008)
    Join Date
    Jun 2009
    Posts
    21
    Reputation
    17

    Default

    Thankyou very much!

  5. #5
    jmcilhinney's Avatar
    jmcilhinney is offline VB.NET Forum Moderator jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute jmcilhinney has a reputation beyond repute
    .NET Framework
    .NET 3.5 (VS 2008)
    Join Date
    Aug 2004
    Location
    Sydney, Australia
    Age
    41
    Posts
    6,736
    Reputation
    653

    Default

    Quote Originally Posted by JohnH View Post
    You can reference Microsoft.VisualBasic.Compatibility and use these properties and functions:
    Code:
    Microsoft.VisualBasic.Compatibility.VB6.TwipsPerPixelX 
    TwipsPerPixelX
    TwipsToPixelsX(x)
    TwipsToPixelsY(y)
    I'm not 100% sure why but those methods have been marked obsolete in .NET 4.0, so it's probably best not to rely on them. I'm not sure what that means for upgraded VB6 code.

  6. #6
    JohnH's Avatar
    JohnH is offline VB.NET Forum Moderator JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute JohnH has a reputation beyond repute
    .NET Framework
    .NET 4.0
    Join Date
    Dec 2005
    Location
    Norway
    Age
    37
    Posts
    10,843
    Reputation
    1443

    Default

    Note: This API is now obsolete.
    Indicates to me the whole VB6 thing is obsolete: Microsoft.VisualBasic.Compatibility.VB6 Namespace () Time to move on by getting started with VB.Net

+ Reply to Thread

Thread Information

Users Browsing this Thread

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

     

Tags for this Thread

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