المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس السادس : إستخدام الدالة BitBlt



PRG of RPG
25-02-2003, 04:32 AM
بسم الله الرحمن الرحيم

السلام عليكم ...


عندما نقوم بوضع شخصية داخل مربع صورة بخلفية سوداء ونضع مشهد بحر كخلفية للفورم ... فسينتج لدينا جزء أسود غير مرغوب به

فمالعمل ؟
هنالك طريقتين هي استخدام الدايركت اكس ، وبما أننا لم نتطرق عليها فسنتحدث عن طريقة اخرى وهي الدالة BitBlt
أولاً من الأفضل أن يكون لديك خلفية عن عمل دوال API ... ولكني سأشرح شرحاً سريعاً للدالة ...

التعريف الرئيسي للدالة (طبعاً نظعه في الأعلى(General) أو في موديل) :


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

BitBlt : الدالة
gdi32 : المكتبة
hDestDC : أين نريد وضع الصورة في مربع صورة أو في الفورم ....
X : الاحداثي السيني لبداية الصورة
Y : الاحداثي الصادي لبداية الصورة
nWidth : عرض الصورة - لا يقوم البرنامج بتصغير العرض وإنما القص من الصورة الأصلية
nHeight : طول الصورة - لا يقوم البرنامج بتصغير الطول وإنما القص من الصورة الأصلية
hSrcDC : الصورة الأصلية
xSrc : الإحداثي السيني لبداية القص من الصورة الأصلية
ySrc : الإحداثي الصادي لبداية القص من الصورة الأصلية
dwRop : أوامر دالة BitBlt .. وسنأخذ كـبداية الأمر vbSrcCopy (أي نسخ الصورة) :

أعتقد أنها واضحة فقط تحتاج إلى مراجعتها وما أن تعتاد عليها حتى يكثر إستخدامك لها

حسناً سنقوم بعملية النسخ في الكود التالي :


BitBlt Picture2.hDC, 0, 0, 60, 60, Picture1.hDC, 0, 0, vbSrcCopy


إفتح ملف التطبيق (6-1) لترى التطبيق وتراجعه جيداً ...

إذن عرفنا أن الأمر vbSrcCopy يقوم بمهم النسخ فقط ... ولكن نحتاج إلى الشفافية

حسناً سأشرح الأمرين SRCAND و MARGEPAINT ... ثم قم بفعل ما يحلو لك

طبعاُ هنالك أوامر أخرى تستطيع البحث عنها في النت إذا أردت :)

الأمر MargePaint يقوم بحذف اللون الأبيض ويجعل اللون الأسود أبيض

الأمر SRCAND يقوم بحذف اللون الأبيض

لقد كونت التطبيق (6-2) للأمرين الجديدين ..

سأرفق التطبيقن (6-1) و (6-2)

تحياتي :)

sul911
25-02-2003, 04:40 AM
مشكوووور