VB 5/6-Tipp 0094: Physikalische Druckränder erfassen
von ActiveVB
Beschreibung
Wie weit man sich an die Ränder des jeweils eingestellten Druckers wagen kann, läßt sich recht leicht erfahren.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Beschriftungsfeld "Label9" ' Steuerelement: Beschriftungsfeld "Label8" ' Steuerelement: Beschriftungsfeld "Label6" ' Steuerelement: Beschriftungsfeld "Label7" ' Steuerelement: Beschriftungsfeld "Label10" ' Steuerelement: Beschriftungsfeld "Label4" ' Steuerelement: Beschriftungsfeld "Label3" ' Steuerelement: Beschriftungsfeld "Label2" ' Steuerelement: Beschriftungsfeld "Label1" ' Steuerelement: Beschriftungsfeld "Label5" Option Explicit Private Declare Function GetDeviceCaps Lib "GDI32" (ByVal _ hDC As Long, ByVal nIndex As Long) As Long Const PHYSICALOFFSETX As Long = 112 Const PHYSICALOFFSETY As Long = 113 Private Sub Form_Load() Label6.Caption = Printer.DeviceName Call PrnBorder End Sub Private Sub PrnBorder() Dim BW&, BH& BW = GetDeviceCaps(Printer.hDC, PHYSICALOFFSETX) BH = GetDeviceCaps(Printer.hDC, PHYSICALOFFSETY) Label7.Caption = BW Label8.Caption = BH Label9.Caption = Format$(Printer.ScaleX(BW, vbPixels, _ vbMillimeters), "###.##") Label10.Caption = Format$(Printer.ScaleY(BH, vbPixels, _ vbMillimeters), "###.##") Printer.KillDoc End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von rohat polat am 03.11.2009 um 21:38
wenn ich ein spiel auf mein pc mache komt ihmer ein kasten und dort steht trin
GetDeviceCaps failed(D3DERR_NOTAVAILABLE) on adapter 0.
Geschichte: GetDeviceCaps <- UD3DRenderDevice::Init <- UGameEngine::Init <- InitEngine
Kommentar von Florian Rittmeier am 24.06.2003 um 15:02
@Albrecht Schuster
In der MSDN konnte ich keine Angaben zum rechten bzw. unteren Rand finden. Ich gehe daher davon aus, dass es für diese Bereiche keine Limitierung gibt.
Gruß Florian
Kommentar von Dickert Walter am 04.04.2002 um 03:32
Die API GetDeviceCaps mitPHYSICALOFFSETX bzw. Y liefert keine Pixel, sondern DPI, also dots per inch.
Bei 1200 dpi und einem Wert von 200 ergibt sich dann ein Wert von 200/1200 *2,54 oder 0,42333 cm.
Hat der Drucker nur 600 dpi ergibt sich 200 / 600 * 2,54 bzw. 0,84666 cm. Im Beispiel wird der Wert als Pixel betrachtet und umgerechnet. Dies gibt in beiden Fällen 0,42333 cm
Kommentar von Albrecht Schuster am 16.05.2001 um 10:54
Im ZIp wird der linke und der obere Rand ermittelt.
Gibt es den auch eine Möglichkeit den bedruckbaren Bereich oder den unteren und rechten Rand festzustellen ?