الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طباعة

مغلق
بدأه رزان في 2 نوفمبر 2003 · 2 رد · 630 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد أن أطبع الأداة TreeView

على طول الورقة ...وحتى لو كانت المعلومات التي بداخلها كبيرة ..مثلا تكفي لصفحتين ..تطبع المعلومات على صفحتين أي لا تصغر من حجم الكلام

وايضا لو في شريط تمرير أن تطبع كل ما في داخل هذه الأداة حتى لو لم يكن ظاهر في الفورم

لقد ......زجربت هذا الكود ولمى يضبط

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Sub PrintTree()

Dim TreeDC As Long

TreeDC = GetDC(trvData.hwnd)

Printer.Print ""

BitBlt Printer.hDC, 0, 0, trvData.Width / 15, trvData.Height / 15, TreeDC, 0, 0, vbSrcCopy

Printer.EndDoc

End Sub[code]

وايضا استخدمت هذا الكود ولمى يضبط ايضا

Private Sub PrintFrm()

Printer.Print ""

Printer.PaintPicture Form1.Image, 0, 0, Form1.Width,

Form1.Height, 0, 0, Form1.Width, Form1.Height,

vbSrcCopy

Printer.EndDoc

End Sub

فأتمنى بأقصى سرعة تحلوا هذه المشكلة لأني بجد محتاجة للحل بسرررررررررعة

واتمنى تساعدوني

#2

هل من مجيب

#3
Function nCount(NodePath As String) As Long
Dim ChrCount As Long
Dim ChrPos As Long

ChrPos = InStr(ChrPos + 1, NodePath, TreeView1.PathSeparator, vbTextCompare)
Do While ChrPos <> 0
    ChrCount = ChrCount + 1
    ChrPos = InStr(ChrPos + 1, NodePath, TreeView1.PathSeparator, vbTextCompare)
Loop
nCount = ChrCount
End Function
Private Sub PrintTree(tvwNode, Y As Long)
If Not tvwNode.Child Is Nothing Then
    Printer.CurrentX = nCount(tvwNode.Child.FullPath) * 100
    Printer.Line (Printer.CurrentX + 200, Printer.CurrentY)-(Printer.CurrentX + 200, Printer.CurrentY + 100)
    Printer.Line -(Printer.CurrentX + 100, Printer.CurrentY)
    Printer.Print (tvwNode.Child)
    Call PrintTree(tvwNode.Child, Printer.CurrentY - Printer.TextHeight("W"))
End If

If Not tvwNode.Next Is Nothing Then
    If nCount(tvwNode.Next.FullPath) <> 0 Then
        Printer.CurrentX = nCount(tvwNode.Next.FullPath) * 100
        Printer.Line (Printer.CurrentX + 200, Y)-(Printer.CurrentX + 200, Printer.CurrentY + 100)
        Printer.Line -(Printer.CurrentX + 100, Printer.CurrentY)
    Else
        Printer.CurrentX = 200
    End If
    Printer.Print (tvwNode.Next.Text)
    Call PrintTree(tvwNode.Next, Printer.CurrentY - Printer.TextHeight("W"))
End If

End Sub

لبدء الطباعة اكتبي

Printer.DrawStyle = 2
Printer.CurrentX = 200
Printer.Print (TreeView1.Nodes(1).Text)
PrintTree TreeView1.Nodes(1), Printer.CurrentY
Printer.EndDoc

Tree.zip

Ali Sayed

هذا الموضوع مغلق.

مواضيع مشابهة