المشاركات : 14
المواضيع 0
الإنتساب : Sep 2012
السمعة :
0
الشكر: 0
تم شكره 0 مرات في 0 مشاركات
السلام عليكم اخوانى اريد طباعة الموجود داخل Frame فقط مع عدم ظهور بقية محتويات الفورم اثناء الطباعة
وشكرا
المشاركات : 372
المواضيع 15
الإنتساب : Sep 2013
السمعة :
28
الشكر: 487
تم شكره 1677 مرات في 187 مشاركات
السلام عليكم...
الكود التالي قمت بتجربته للطباعة على 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
نرجو بعد تجربة الكود أن تخبرنا بالنتيجة... و أرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
المشاركات : 14
المواضيع 0
الإنتساب : Sep 2012
السمعة :
0
الشكر: 0
تم شكره 0 مرات في 0 مشاركات
ناجي إبراهيم كتب :السلام عليكم...
الكود التالي قمت بتجربته للطباعة على 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 فقط لا يوجد بيكتشر بوكس
المشاركات : 372
المواضيع 15
الإنتساب : Sep 2013
السمعة :
28
الشكر: 487
تم شكره 1677 مرات في 187 مشاركات
السلام عليكم...
أعرف أنك تريد طباعة الـ Frame فقط. أما الـ PictureBox فإننا نضيفه إلى الـ Form لغرض إنشاء الصورة ثم طباعتها، و هو لن يكون مرئياً أثناء التنفيذ لأننا نضبط الخاصية Visible له على False (انظر كود الحدث Form_Load) أو يمكنك ضبطه أثناء التصميم.
سلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
المشاركات : 490
المواضيع 54
الإنتساب : Sep 2013
السمعة :
63
الشكر: 1726
تم شكره 1192 مرات في 348 مشاركات
[COLOR="#0000FF"]وعليكم السلام ورحمة الله وبركاته
كود رائع ومذهل أخ ناجي وأبشرك أني قمت بتجريبه ونجحت الفكرة 100 % والحمد لله
سلمت اناملك أيها المبدع [/COLOR]
فاعلم أنه لا إله إلا الله
المشاركات : 14
المواضيع 0
الإنتساب : Sep 2012
السمعة :
0
الشكر: 0
تم شكره 0 مرات في 0 مشاركات
ناجي إبراهيم كتب :السلام عليكم...
أعرف أنك تريد طباعة الـ Frame فقط. أما الـ PictureBox فإننا نضيفه إلى الـ Form لغرض إنشاء الصورة ثم طباعتها، و هو لن يكون مرئياً أثناء التنفيذ لأننا نضبط الخاصية Visible له على False (انظر كود الحدث Form_Load) أو يمكنك ضبطه أثناء التصميم.
سلام.
شكرا لك اخى كريم وجعلها الله فى ميزان حسناتك
المشاركات : 372
المواضيع 15
الإنتساب : Sep 2013
السمعة :
28
الشكر: 487
تم شكره 1677 مرات في 187 مشاركات
السلام عليكم...
السندبااد كتب :[COLOR="#0000FF"]وعليكم السلام ورحمة الله وبركاته
كود رائع ومذهل أخ ناجي وأبشرك أني قمت بتجريبه ونجحت الفكرة 100 % والحمد لله
سلمت اناملك أيها المبدع [/COLOR]
أشكرك صديقي القديم - عن بعد - السندبااد على مشاركتك في الإجابة. لكن مديحك و إطراءك لي يخجلني جداً، خاصة و أن الجميع يشهد لك - منذ أيام المنتدى القديم - بمواضيعك المتقدمة و المتميزة و المفيدة و الثرية جداً.
أكرر شكري، و أدعو الله أن يعجل بالفرج على إخواننا في سوريا، و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
المشاركات : 14
المواضيع 0
الإنتساب : Sep 2012
السمعة :
0
الشكر: 0
تم شكره 0 مرات في 0 مشاركات
ناجي إبراهيم كتب :السلام عليكم...
الكود التالي قمت بتجربته للطباعة على 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
نرجو بعد تجربة الكود أن تخبرنا بالنتيجة... و أرجو الاستفادة و السلام.
فى مشكلة صغيرة جدا بس هى انه مش بيطبع الفرام كامل بيطبع جزء منه
المشاركات : 55
المواضيع 1
الإنتساب : Sep 2012
السمعة :
0
الشكر: 0
تم شكره 11 مرات في 10 مشاركات
طب معلشى ياجماعة اذاى استخرج اداة Frame انا كنت فاكرها بس نسيت
المشاركات : 5
المواضيع 3
الإنتساب : Aug 2017
السمعة :
0
الشكر: 1
تم شكره 1 مرات في 1 مشاركات
السلام عليكم شباب اتمنى منكم ترفقون هذا المشروع لان حاولت لكن تطلع اخطاء
واكون شاكر الكم
|