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

ياريت حد يفهمنى الكود ده (مش طويل وأريد أفهم منه بعض الجزئيات)

مغلق
بدأه moh_mou في 26 يناير 2008 · 0 رد · 503 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم ورحمة الله وبركاته

أنا حقيقة بتعلم برمجة دايركت أكس عن

Direct Draw

عن طريق ربطها بالفيجوال بيسك فالهمه صدفنى هذا الكود وهو يتكلم عن السطوح الخلفى والرئيسى إلخ

المهم ده الكود

الكود

Option Explicit
Dim Dx As New DirectX7
Dim Dd As DirectDraw7
Dim Ddsd As DDSURFACEDESC2
Dim Primary As DirectDrawSurface7
Dim Back_Buffer As DirectDrawSurface7
Private Sub Command1_Click()
Set Dd = Dx.DirectDrawCreate("")
Dd.SetCooperativeLevel Me.hWnd, DDSCL_EXCLUSIVE Or DDSCL_FULLSCREEN Or DDSCL_ALLOWREBOOT
Dd.SetDisplayMode 800, 600, 16, 0, DDSDM_DEFAULT
Show
With Ddsd
 .lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
 .ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
 .lBackBufferCount = 1
End With
Set Primary = Dd.CreateSurface(Ddsd)
Ddsd.ddsCaps.lCaps = DDSCAPS_BACKBUFFER
Set Back_Buffer = Primary.GetAttachedSurface(Ddsd.ddsCaps)
Do
Back_Buffer.setDrawWidth 1
Back_Buffer.SetForeColor RGB(0, 0, 0)
Back_Buffer.SetFillColor RGB(0, 20, 100)
Back_Buffer.DrawBox 0, 0, 800, 600

Primary.Flip Nothing, DDFLIP_WAIT
DoEvents
Loop
End Sub

اللى انا أريد إن أفهمه أولاً

Set Dd = Dx.DirectDrawCreate("")
Dd.SetCooperativeLevel Me.hWnd, DDSCL_EXCLUSIVE Or DDSCL_FULLSCREEN Or DDSCL_ALLOWREBOOT
Dd.SetDisplayMode 800, 600, 16, 0, DDSDM_DEFAULT
Show

أنا عارف أنه هذه الجزئية خاصة بربط الديركت أكس بكرت العرض واللى هو رمزه فارغ

والسطر الثانى

Form وهي 1 Direct Draw تحديد الشاشة الرئيسية التي يستخدمها

وجعله ملئ الشاشة وأن يكون كارت العرض مقتصر فقط على البرنامج

والسماح بأظهار الشاشة end task

اللى انا مش فهمه يعنى ايه DDSCL

التى تم ذكرها أكثر من مرة

أما فى السطر

Dd.SetDisplayMode 800, 600, 16, 0, DDSDM_DEFAULT

أيه فائدة الصفر هنا أنا عارف أنه أول رقمين دقة عرض الشاشة والتانى الألوان وكمان يعنى ايه

DDSDM_DEFAULT

وفى السطر الاخير ما فائدة وضع show

وعندما حذفتها الكود لم يعمل

أما هذا الجزء

With Ddsd
 .lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
 .ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
 .lBackBufferCount = 1
End With
Set Primary = Dd.CreateSurface(Ddsd)
Ddsd.ddsCaps.lCaps = DDSCAPS_BACKBUFFER
Set Back_Buffer = Primary.GetAttachedSurface(Ddsd.ddsCaps)

أنا مش فهمه خالص وحاولت أحذف من الكود وأعدل ولكن مفهمتش ياريت حد يفهونى بشئ من التفصيل

أما بقيت الكود أنا فهمه ولكن أريد إن أفهم

Back_Buffer.DrawBox 0, 0, 800, 600

Primary.Flip Nothing, DDFLIP_WAIT
DoEvents
Loop

تم تعديل هذه المشاركة بواسطة moh_mou في 26 يناير 2008 في 18:18

17.gifالحياة حقنة فصبر عليها 17.gif

Syringe.gif

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…