تقييم الموضوع :
  • 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 انا كنت فاكرها بس نسيت
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم شباب اتمنى منكم ترفقون هذا المشروع لان حاولت لكن تطلع اخطاء
واكون شاكر الكم
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يتم طباعة تقرير اكتف ريبورت مباشرة gonm64 1 1,399 03-02-22, 06:22 AM
آخر رد: Taha Okla
Rainbow [سؤال] مساعدة لعمل برنامج حضور وانصراف+وقاعدة بيانات+ربط بالوورد لسهولة طباعة بعض الفورمز فاطمة غ 10 11,621 31-10-20, 01:00 AM
آخر رد: ryadd
  طباعة الفورم بأكملها على الورقة مهما كانت أبعادها اسلام الكبابى 6 5,975 09-06-20, 06:14 PM
آخر رد: شوشه
  [vb6.0] كيف طباعة فاتورة مبيعات من طابعة EPSON LQ-350 awidan76 1 2,567 20-11-18, 12:19 PM
آخر رد: awidan76
  [vb6.0] كود طباعة عمور2016 5 3,146 13-03-18, 12:57 AM
آخر رد: Ahmed_Mansoor
  [كود] كود طباعة جدولين في تقرير واحد عمور2016 4 2,736 07-03-18, 02:24 AM
آخر رد: عمور2016
  [سؤال] سوال؟ عن طباعة الورقة عرض(التقرير) amer2000 21 7,930 15-09-16, 10:00 PM
آخر رد: Amir_Alzubidy
  طباعة الفورم على الورق fadhely 2 3,038 02-05-16, 08:00 AM
آخر رد: fadhely
  [سؤال] طباعة التقرير بعدد معين ABO.BANCIANA 5 3,211 04-03-16, 09:52 PM
آخر رد: ahmedabdelaliem
  مساعدة في كتابة كود يتم من خلاله طباعة الفورم عدد معين من المرات نصر صالح 2 2,770 20-12-14, 10:03 PM
آخر رد: Ahmed_Mansoor

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


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