تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طباعة Frame فقط
#1
السلام عليكم اخوانى اريد طباعة الموجود داخل Frame فقط مع عدم ظهور بقية محتويات الفورم اثناء الطباعة

وشكرا

الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم...

الكود التالي قمت بتجربته للطباعة على PictureBox (غير Picture1 المذكور في الكود)، و من المفترض أن يعمل مع الطابعة أيضاً لكني لم أتأكد من ذلك لأني لا أملك طابعة جاهزة حالياً:

* أضف PictureBox إلى الـ Form، و لنفرض أن اسمه Picture1. خصائص هذا الـ PictureBox المذكورة في كود الحدث Form_Load يمكن ضبطها أثناء التصميم و حذفها من الكود.

* اكتب الكود التالي:
كود :
' في قسم التصريحات العام
Private Const SRCCOPY = &HCC0020

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 Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

' عند تحميل النافذة. يمكن ضبط هذه الخصائص أثناء التصميم
Private Sub Form_Load()
    With Picture1
        .ScaleMode = vbPixels       ' ( = 3 - Pixel )
        .BorderStyle = 0            ' ( = 0 - None )
        .Width = Frame1.Width
        .Height = Frame1.Height
        .AutoRedraw = True
        .Visible = False
    End With
End Sub

' زر الطباعة
Private Sub Command1_Click()
    Dim hFrameDC As Long
    Dim OldMode As ScaleModeConstants
    Dim WidthPixels As Long
    Dim HeightPixels As Long

' الحصول على المقبض الرسومي للإطار    
    hFrameDC = GetDC(Frame1.hwnd)
    If hFrameDC <> 0 Then
        ' تحويل عرض و طول الإطار إلى وحدة البكسل
        WidthPixels = Me.ScaleX(Frame1.Width, Me.ScaleMode, vbPixels)
        HeightPixels = Me.ScaleY(Frame1.Height, Me.ScaleMode, vbPixels)
        ' مسح مربع الصورة المخفي و رسم صورة الإطار به
        Picture1.Cls
        BitBlt Picture1.hdc, 0, 0, WidthPixels, HeightPixels, hFrameDC, 0, 0, SRCCOPY

        ' ضبط و تهيئة الطابعة
        OldMode = Printer.ScaleMode
        Printer.ScaleMode = vbPixels
        Printer.Print "";
        ' نسخ الصورة إلى الطابعة
        Printer.PaintPicture Picture1.Image, 0, 0, WidthPixels, HeightPixels, 0, 0, WidthPixels, HeightPixels
        ' إعطاء الأمر بالطباعة
        Printer.EndDoc
        Printer.ScaleMode = OldMode
    End If
End Sub

نرجو بعد تجربة الكود أن تخبرنا بالنتيجة... و أرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
تم الشكر بواسطة:
#3
ناجي إبراهيم كتب :السلام عليكم...

الكود التالي قمت بتجربته للطباعة على PictureBox (غير Picture1 المذكور في الكود)، و من المفترض أن يعمل مع الطابعة أيضاً لكني لم أتأكد من ذلك لأني لا أملك طابعة جاهزة حالياً:

* أضف PictureBox إلى الـ Form، و لنفرض أن اسمه Picture1. خصائص هذا الـ PictureBox المذكورة في كود الحدث Form_Load يمكن ضبطها أثناء التصميم و حذفها من الكود.

* اكتب الكود التالي:
كود :
' في قسم التصريحات العام
Private Const SRCCOPY = &HCC0020

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 Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

' عند تحميل النافذة. يمكن ضبط هذه الخصائص أثناء التصميم
Private Sub Form_Load()
    With Picture1
        .ScaleMode = vbPixels       ' ( = 3 - Pixel )
        .BorderStyle = 0            ' ( = 0 - None )
        .Width = Frame1.Width
        .Height = Frame1.Height
        .AutoRedraw = True
        .Visible = False
    End With
End Sub

' زر الطباعة
Private Sub Command1_Click()
    Dim hFrameDC As Long
    Dim OldMode As ScaleModeConstants
    Dim WidthPixels As Long
    Dim HeightPixels As Long

' الحصول على المقبض الرسومي للإطار    
    hFrameDC = GetDC(Frame1.hwnd)
    If hFrameDC <> 0 Then
        ' تحويل عرض و طول الإطار إلى وحدة البكسل
        WidthPixels = Me.ScaleX(Frame1.Width, Me.ScaleMode, vbPixels)
        HeightPixels = Me.ScaleY(Frame1.Height, Me.ScaleMode, vbPixels)
        ' مسح مربع الصورة المخفي و رسم صورة الإطار به
        Picture1.Cls
        BitBlt Picture1.hdc, 0, 0, WidthPixels, HeightPixels, hFrameDC, 0, 0, SRCCOPY

        ' ضبط و تهيئة الطابعة
        OldMode = Printer.ScaleMode
        Printer.ScaleMode = vbPixels
        Printer.Print "";
        ' نسخ الصورة إلى الطابعة
        Printer.PaintPicture Picture1.Image, 0, 0, WidthPixels, HeightPixels, 0, 0, WidthPixels, HeightPixels
        ' إعطاء الأمر بالطباعة
        Printer.EndDoc
        Printer.ScaleMode = OldMode
    End If
End Sub

نرجو بعد تجربة الكود أن تخبرنا بالنتيجة... و أرجو الاستفادة و السلام.
شكرا لاهتماك اخى لاكنى اريد طباعة محتويات الFrame فقط لا يوجد بيكتشر بوكس
الرد }}}}
تم الشكر بواسطة:
#4
السلام عليكم...

أعرف أنك تريد طباعة الـ Frame فقط. أما الـ PictureBox فإننا نضيفه إلى الـ Form لغرض إنشاء الصورة ثم طباعتها، و هو لن يكون مرئياً أثناء التنفيذ لأننا نضبط الخاصية Visible له على False (انظر كود الحدث Form_Load) أو يمكنك ضبطه أثناء التصميم.

سلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
تم الشكر بواسطة:
#5
[COLOR="#0000FF"]وعليكم السلام ورحمة الله وبركاته
كود رائع ومذهل أخ ناجي وأبشرك أني قمت بتجريبه ونجحت الفكرة 100 % والحمد لله
سلمت اناملك أيها المبدع Smile[/COLOR]
فاعلم أنه لا إله إلا الله
الرد }}}}
تم الشكر بواسطة:
#6
ناجي إبراهيم كتب :السلام عليكم...

أعرف أنك تريد طباعة الـ Frame فقط. أما الـ PictureBox فإننا نضيفه إلى الـ Form لغرض إنشاء الصورة ثم طباعتها، و هو لن يكون مرئياً أثناء التنفيذ لأننا نضبط الخاصية Visible له على False (انظر كود الحدث Form_Load) أو يمكنك ضبطه أثناء التصميم.

سلام.
شكرا لك اخى كريم وجعلها الله فى ميزان حسناتك
الرد }}}}
تم الشكر بواسطة:
#7
السلام عليكم...

السندبااد كتب :[COLOR="#0000FF"]وعليكم السلام ورحمة الله وبركاته
كود رائع ومذهل أخ ناجي وأبشرك أني قمت بتجريبه ونجحت الفكرة 100 % والحمد لله
سلمت اناملك أيها المبدع Smile[/COLOR]

أشكرك صديقي القديم - عن بعد Smile - السندبااد على مشاركتك في الإجابة. لكن مديحك و إطراءك لي يخجلني جداً، خاصة و أن الجميع يشهد لك - منذ أيام المنتدى القديم - بمواضيعك المتقدمة و المتميزة و المفيدة و الثرية جداً.

أكرر شكري، و أدعو الله أن يعجل بالفرج على إخواننا في سوريا، و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
تم الشكر بواسطة:
#8
ناجي إبراهيم كتب :السلام عليكم...

الكود التالي قمت بتجربته للطباعة على PictureBox (غير Picture1 المذكور في الكود)، و من المفترض أن يعمل مع الطابعة أيضاً لكني لم أتأكد من ذلك لأني لا أملك طابعة جاهزة حالياً:

* أضف PictureBox إلى الـ Form، و لنفرض أن اسمه Picture1. خصائص هذا الـ PictureBox المذكورة في كود الحدث Form_Load يمكن ضبطها أثناء التصميم و حذفها من الكود.

* اكتب الكود التالي:
كود :
' في قسم التصريحات العام
Private Const SRCCOPY = &HCC0020

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 Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

' عند تحميل النافذة. يمكن ضبط هذه الخصائص أثناء التصميم
Private Sub Form_Load()
    With Picture1
        .ScaleMode = vbPixels       ' ( = 3 - Pixel )
        .BorderStyle = 0            ' ( = 0 - None )
        .Width = Frame1.Width
        .Height = Frame1.Height
        .AutoRedraw = True
        .Visible = False
    End With
End Sub

' زر الطباعة
Private Sub Command1_Click()
    Dim hFrameDC As Long
    Dim OldMode As ScaleModeConstants
    Dim WidthPixels As Long
    Dim HeightPixels As Long

' الحصول على المقبض الرسومي للإطار    
    hFrameDC = GetDC(Frame1.hwnd)
    If hFrameDC <> 0 Then
        ' تحويل عرض و طول الإطار إلى وحدة البكسل
        WidthPixels = Me.ScaleX(Frame1.Width, Me.ScaleMode, vbPixels)
        HeightPixels = Me.ScaleY(Frame1.Height, Me.ScaleMode, vbPixels)
        ' مسح مربع الصورة المخفي و رسم صورة الإطار به
        Picture1.Cls
        BitBlt Picture1.hdc, 0, 0, WidthPixels, HeightPixels, hFrameDC, 0, 0, SRCCOPY

        ' ضبط و تهيئة الطابعة
        OldMode = Printer.ScaleMode
        Printer.ScaleMode = vbPixels
        Printer.Print "";
        ' نسخ الصورة إلى الطابعة
        Printer.PaintPicture Picture1.Image, 0, 0, WidthPixels, HeightPixels, 0, 0, WidthPixels, HeightPixels
        ' إعطاء الأمر بالطباعة
        Printer.EndDoc
        Printer.ScaleMode = OldMode
    End If
End Sub

نرجو بعد تجربة الكود أن تخبرنا بالنتيجة... و أرجو الاستفادة و السلام.

فى مشكلة صغيرة جدا بس هى انه مش بيطبع الفرام كامل بيطبع جزء منه
الرد }}}}
تم الشكر بواسطة:
#9
طب معلشى ياجماعة اذاى استخرج اداة Frame انا كنت فاكرها بس نسيت
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Rainbow [سؤال] مساعدة لعمل برنامج حضور وانصراف+وقاعدة بيانات+ربط بالوورد لسهولة طباعة بعض الفورمز فاطمة غ 8 194 01-12-16, 06:37 PM
آخر رد: Amir_alzubidy
  [سؤال] سوال؟ عن طباعة الورقة عرض(التقرير) amer2000 21 517 15-09-16, 10:00 PM
آخر رد: Amir_alzubidy
  طباعة الفورم على الورق fadhely 2 363 02-05-16, 08:00 AM
آخر رد: fadhely
  [سؤال] طباعة التقرير بعدد معين ABO.BANCIANA 5 298 04-03-16, 09:52 PM
آخر رد: ahmedabdelaliem
  مساعدة في كتابة كود يتم من خلاله طباعة الفورم عدد معين من المرات نصر صالح 2 562 20-12-14, 10:03 PM
آخر رد: Ahmed_Mansoor
  درس لتعليم طباعة الفورم اسلام الكبابى 1 635 11-08-13, 01:33 PM
آخر رد: اسلام الكبابى
  طباعة MshFlexGrid derbaliammar 0 382 31-07-13, 09:29 PM
آخر رد: derbaliammar
  طباعة الفورم بأكملها على الورقة مهما كانت أبعادها اسلام الكبابى 5 928 24-05-13, 01:13 AM
آخر رد: اسلام الكبابى
  كيف اطبع الصورة الموجودة على سطح الفوم بدون طباعة الفورم ؟؟ softmail8 8 1,016 17-04-13, 09:35 PM
آخر رد: VB6DAO
  [عنوان معدل] استفسار عن طباعة الوقت والتاريخ omarelking 3 663 30-09-12, 05:02 PM
آخر رد: Ahmad Jawad

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم