PrintRotatedText – Display a rotated message

Const LF_FACESIZE = 32Private Type LOGFONT    lfHeight As Long    lfWidth As Long    lfEscapement As Long    lfOrientation As Long    lfWeight As Long    lfItalic As Byte    lfUnderline As Byte    lfStrikeOut As Byte    lfCharSet As Byte    lfOutPrecision As Byte    lfClipPrecision As Byte    lfQuality As Byte    lfPitchAndFamily As Byte    lfFaceName As String * LF_FACESIZEEnd TypePrivate Declare Function SetGraphicsMode Lib "gdi32" (ByVal hdc As Long, _    ByVal iMode As Long) As LongPrivate Declare Function MulDiv Lib "Kernel32" (ByVal nNumber As Long, _    ByVal nNumerator As Long, ByVal nDenominator As Long) As LongPrivate Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _    ByVal nIndex As Long) As LongPrivate Declare Function CreateFontIndirect Lib "gdi32" Alias _    "CreateFontIndirectA" (lpLogFont As LOGFONT) As LongPrivate Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, _    ByVal hObject As Long) As LongPrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As _    LongPrivate Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (dest As _    Any, Source As Any, ByVal bytes As Long)' Print rotated text' The first argoment can be a form, a picture box, the Printer, and in general' any VB object that supports the Font and the hDC properties.' Text is the string to be printed' Angle is the orientation, in 10th of degrees (default is 90°)' X and Y are the printing coordinates (omit to use the current coordinates)'' Note: you get best results when using TrueType fontsSub PrintRotatedText(PB As Object, ByVal Text As String, _    Optional ByVal Angle As Integer = -900, Optional x As Variant, _    Optional y As Variant)    Dim hfont As Long, holdfont As Long    Dim Font As LOGFONT       Const GM_ADVANCED = 2    Const LOGPIXELSY = 90    SetGraphicsMode PB.hdc, GM_ADVANCED        ' Create a Font object, similar to the current font in PB    ' but with a different orientation    Font.lfHeight = -MulDiv(PB.FontSize, GetDeviceCaps(PB.hdc, LOGPIXELSY), 72)    Font.lfWidth = 0    Font.lfEscapement = Angle    Font.lfOrientation = Angle    Font.lfWeight = IIf(PB.FontBold, 700, 400)    Font.lfItalic = IIf(PB.FontItalic, 1, 0)    Font.lfUnderline = IIf(PB.FontUnderline, 1, 0)    Font.lfStrikeOut = IIf(PB.FontStrikethru, 1, 0)    Font.lfCharSet = 0    Font.lfOutPrecision = 0    Font.lfClipPrecision = 0    Font.lfQuality = 2    Font.lfPitchAndFamily = 33    Font.lfFaceName = PB.FontName & vbNullChar        hfont = CreateFontIndirect(Font)    holdfont = SelectObject(PB.hdc, hfont)        ' Account for X,Y coordinates    If Not IsMissing(x) Then PB.CurrentX = x    If Not IsMissing(y) Then PB.CurrentY = y        ' do the printing    PB.Print Text    ' reselect the old font    SelectObject PB.hdc, holdfont     ' destroy the font object just created    DeleteObject hfontEnd Sub

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

The Latest

microsoft careers

Top Careers at Microsoft

Microsoft has gained its position as one of the top companies in the world, and Microsoft careers are flourishing. This multinational company is efficiently developing popular software and computers with other consumer electronics. It is a dream come true for so many people to acquire a high paid, high-prestige job

your company's audio

4 Areas of Your Company Where Your Audio Really Matters

Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a

chrome os developer mode

How to Turn on Chrome OS Developer Mode

Google’s Chrome OS is a popular operating system that is widely used on Chromebooks and other devices. While it is designed to be simple and user-friendly, there are times when users may want to access additional features and functionality. One way to do this is by turning on Chrome OS