VB Code:
  1. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  2. Private Const VK_MENU As Byte = &H12
  3. Private Const VK_SNAPSHOT As Byte = &H2C
  4. Private Const KEYEVENTF_KEYUP = &H2
  5.  
  6. Private Sub cmdPrintForm_Click()
  7. Dim lWidth As Long, lHeight As Long
  8.     Clipboard.Clear
  9.     Call keybd_event(VK_MENU, 0, 0, 0)
  10.     Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
  11.     DoEvents
  12.     Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0)
  13.     Call keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0)
  14.     Printer.Print
  15.     If Width > Printer.ScaleWidth Then
  16.         lWidth = Printer.ScaleWidth
  17.         lHeight = (Printer.ScaleWidth / Width) * Height
  18.     Else
  19.         lWidth = Width
  20.         lHeight = Height
  21.     End If
  22.     Printer.PaintPicture Clipboard.GetData, 0, 0, lWidth, lHeight
  23.     Printer.EndDoc
  24. End Sub