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

AnimateWindow

مغلق
بدأه TarekNajem04 في 1 ديسمبر 2005 · 7 رد · 915 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

سوف نتحدث في هذا الدرس عن طريقة إنشاء نوافذ نستطيع أن نقوم بإظهارها مثل قوائم النظام

لنصنع هذه النافذن نحتاج إلى إستيراد أحد الوظائف من النظام المعروفة بـ Applacation Programming Interface أو إختصار API وهي: AnimateWindow

يمكننا الـ C# من إستيراد هذه الوظيفة كما يلي

        [DllImport("User32.dll", SetLastError = true)]
        private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);

سنشرح جميع البرمتيرات التي تحتاجه هذه الوظيفة:

1- hwnd: وهو مقبض النافذة التي نريد إضهارها ونستطيع أن نسنده لهذه الوظيفة عن طريق الخاصية Handle التباعة لأي Control وبما أن النوفذ تقوم بوراثة الـ Control فنحن نستطيع أن نقوم بذلك بكتابة مثل هذا الكود

Intptr hwnd = Form.Handle;

أو تمريرة بشكل مباشر إلى هذه الوظيفة

2- dwTime: فهو المدة الزمنية التي سوف تقوم هذه الوضيفة بإظهار النافذة محسوب بالمليساكند والإفتراضي للنظام الوندوز 200 ونستطيع تعديله كما نشاء

3-dwFlags: هو عبارة مجمعة من الثوابت التي تحدد طريقة إضهار النافذة أو إخفائها ونستطيع أن نجمع ما شئنا من حركات

    AnimateWindow(this.Handle, 300, AW_SLIDE | AW_HOR_NEGATIVE)

أما للإخفاء فنكتب

 
    AnimateWindow(this.Handle, 300, AW_HIDE | AW_SLIDE | AW_HOR_NEGATIVE)

ولتسهيل البرمتير الأخير نستطيع أن ننشأه كـ Enum

    [Flags]
    public enum AnimateWindowMode : int
    {
        AW_HOR_POSITIVE = 0x00000001,
        AW_HOR_NEGATIVE = 0x00000002,
        AW_VER_POSITIVE = 0x00000004,
        AW_VER_NEGATIVE = 0x00000008,
        AW_CENTER = 0x00000010,
        AW_HIDE = 0x00010000,
        AW_ACTIVATE = 0x00020000,
        AW_SLIDE = 0x00040000,
        AW_BLEND = 0x00080000
    }

لا تنسى أن تتضع الـ FlagsAttribute لكي نعلم الـ C# بأننا نريد أن نجمع أكثر من ثابت

إذا أردنا أن نعيد صياغة الكود السابق مع هذ الـ Enum

    AnimateWindow(this.Handle, 300,  AnimateWindowMode.AW_SLIDE |  AnimateWindowMode.AW_HOR_NEGATIVE)

أما للإخفاء فنكتب

 
    AnimateWindow(this.Handle, 300, AnimateWindowMode.W_HIDE |  AnimateWindowMode.AW_SLIDE |  AnimateWindowMode.AW_HOR_NEGATIVE)

أتمنى للجميع الفائدة ومن لدية سؤال إن شاء الله سأكون في الخدمة

يوجد مثال كامل مع المرفقات تستطيع أن تستفاد من في مشاريعك إن شاء الله

AnimateWindowSample.rar

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#2

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

#3

مشكور على مرورك يا معلم

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#4

الف شكر يا باشا

ومبروك على منتدى الC# وجود عضو متميز اتمنى ان يثرى المنتدى بدروسه و مساعداته

جزاك الله خيرا :)

#5

مشكور على مرورك أتمنى من الله أن نكون جميعاً مثلما تقول

تم تعديل هذه المشاركة بواسطة TarekNajem04 في 2 ديسمبر 2005 في 00:09

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#6

ماشاء الله

ممتاز

شكرا لك

3424.gif
#8

إذا كنت تملك نسخة 2003 قم بإنشاء مشروع جدد وأضف عليه جميع الملفات التي يحتويها المشروع السابق التي تنتهي بـ CS.*

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

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

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