برنس فتوشوب  Pr-Photoshop



انضم إلى المنتدى ، فالأمر سريع وسهل

برنس فتوشوب  Pr-Photoshop

برنس فتوشوب  Pr-Photoshop

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Barabeta.com_5454345
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج 2tz3

المواضيع الأخيرة

» المرأة ....... تعرفوا عليها
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالخميس ديسمبر 02, 2010 11:42 am من طرف فافي

» ارتداء الستيانه
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالثلاثاء يونيو 29, 2010 11:34 am من طرف سمسم العراقي

» انضر الى اجمل ما خلقه الله سبحانه وتعالى
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالأربعاء ديسمبر 02, 2009 1:19 pm من طرف سمسم العراقي

» آخر صور للفنان رضى العبد الله
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالسبت أكتوبر 31, 2009 10:28 am من طرف فافي

» سر دمعتي .......
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالجمعة يوليو 17, 2009 6:50 am من طرف mylove

» كليب كامل يوسف ^^ عزابي ^^ حصرياًَ بس مني
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالثلاثاء يوليو 14, 2009 1:34 pm من طرف فافي

» احلى رقصة بالعالم ارجو الرد.....
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالسبت يوليو 11, 2009 7:52 am من طرف فافي

» سؤال يطرح نفسه بقوة ؟؟؟؟؟
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالجمعة يوليو 10, 2009 6:34 pm من طرف سمسم العراقي

» طفل في الهند له ذيل
مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Emptyالجمعة يوليو 10, 2009 6:30 pm من طرف سمسم العراقي

تدفق ال RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 

    مثبت : تكملة موضوع شاشة التوقغ ج 1 التنفيذ البرنامج

    Admin
    Admin
    Admin
    Admin


    ذكر عدد المساهمات : 47
    نقاط : 22456
    السٌّمعَة : 0
    تاريخ التسجيل : 21/05/2009

    مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Empty مثبت : تكملة موضوع شاشة التوقغ ج 1 التنفيذ البرنامج

    مُساهمة من طرف Admin الأربعاء يونيو 03, 2009 6:00 pm

    الآن علينا تحويل البرنامج السابق الى شاشة توقف شبه كاملة
    اين نبدأ وماذا نعدل :
    أولا لنعدل الملف الناتج من ملف exe الى ملف scr
    اذهب الى القائمةproject
    واختر منها Setting
    من القائمة المنسدلة على يسارك اختر win32 debug
    ومن اليمين اذهب للتبويب debug وعدل في الحقل الاول بدل exe الموجودة بالاخر اكتب scr
    وايضا تقدم الى التبويب Link وعدل آخر المكتوب بالحقل الأول بدل EXE اكتب Scr ايضا
    عد الى اليسار واختر من اللائحة المنسدلة Win32 Release وكرر نفس العملية في التبويب debug و Link
    الآن عنما تنفذ البرنامج ستجد في مكان التنفيذ شاشة توقف وليس برنامج
    لكنها ليست شاشة توقف كاملة بل هي برنامج يلبس ثياب شاشة التوقف فقط ولا بد من عمل التعديلات الاساسية

    تذكرون الفرق الاول الذي ذكرته بين شاشة التوقف والبرنامج العادي وهو انك يجب ان تفحص من الذي يستدعي شاشة التوقف واين
    كيف نفحص ذلك وفي اي مكان من البرنامج
    نفحص ذلك من خلال المعاملات argc و argv التي يمررها نظام التشغيل للبرنامج عندما يستدعيه ويحدد منها المطلوب بالضبط
    فتح ام تشغيل ام طباعة ام تعديل ام غيره
    اذا اين نجد هذه المعاملات :
    ساقول لك
    بديهيا ستجدها عند اول نقطة لدخول البرنامج او لنعدل من أجل الدقة ونقول عند اول نقطة لا يخفيها عليك الـ MFC
    وذلك بالدالة : InitInstance() التابعة لصف التطبيق وهو في مثالنا سيكون CDell19App
    اذا اذهب الى الصف المذكور وانظر الدالة التي قلتها وانظر الى محتوياتها ستجد فيه الشيفرة التالية:
    C++ كود
    _______________________________________________________// Standard initialization

    // If you are not using these features and wish to reduce the size

    // of your final executable, you should remove from the following

    // the specific initialization routines you do not need.



    #ifdef _AFXDLL

    Enable3dControls(); // Call this when using MFC in a shared DLL

    #else

    Enable3dControlsStatic(); // Call this when linking to MFC statically

    #endif



    CDel19Dlg dlg;

    m_pMainWnd = &dlg;

    int nResponse = dlg.DoModal();

    if (nResponse == IDOK)

    {

    // TODO: Place code here to handle when the dialog is

    // dismissed with OK

    }

    else if (nResponse == IDCANCEL)

    {

    // TODO: Place code here to handle when the dialog is

    // dismissed with Cancel

    }



    // Since the dialog has been closed, return FALSE so that we exit the

    // application, rather than start the application's message pump.

    return FALSE;

    _______________________________________________________


    وهي تقوم بتشغيل بعض الخصائص في البرنامج لا مجال لذكرها لاننا سنعدل كل ما هو مكتوب هنا وكذلك تقوم باظهار النافذة الرئيسية للبرنامج من خلال الامر DoModal
    اذا قم بمسح كل محتوياتها
    وضع بدلا منها الشيفرة المشروحة التالية :
    C++ كود
    ______________________________________________________

    // Standard initialization

    // If you are not using these features and wish to reduce the size

    // of your final executable, you should remove from the following

    // the specific initialization routines you do not need.

    #ifdef _AFXDLL

    Enable3dControls(); // Call this when using MFC in a shared DLL

    #else

    Enable3dControlsStatic(); // Call this when linking to MFC statically

    #endif



    // هنا نعرف متغير ليدل على النافذة الرئيسية تمهيدا لتشغيلها

    CDel19Dlg dlg;

    // وهنا نربط هذا المتغير بالعنصر الذي يشير الى النافذة الرئيسية للبرنامج

    m_pMainWnd = &dlg;

    /// الآن علينا ان نفحص طلب نظام التشغيل

    /// ولذلك نعرف المتغير الحرفي التالي

    char state;



    //// الآن نفحص المعامل الأول الممرر للبرنامج لنعرف اذا كان البرنامج شغال من قبل ام لا

    // اذا كانت قيمة المعامل هي 1 يجب ان نجعل شاشة التوقف تعمل بشكل طبيعي

    // مبدأيا لنجعل المتغير المحرفي يحفظ القيمة + وهي من اختياري انا هنا

    if (__argc == 1)

    {

    state = '+';

    }

    // اذا لم تكن القيمة الممرة 1 يعني ان هناك معامل ثاني يحوي خيارات اضافية

    // لنقم بفحصها هنا

    // اولا ناخذ الحرف الاول من المعامل الثاني ونحذف من أوله الرموز المرفقة

    // ثم ناخذ ما تبقى ونخزنه في المتغير المحرفي تمهيدا للتعامل معه بعدين

    else

    {

    LPTSTR lpsargv = __argv[1];

    char arg = lpsargv[0];

    if (arg == '-' || arg == '/')

    arg = lpsargv[1];

    state = arg;

    }



    // نعرف الآن متغير عدد صحيح سنستخدمه من اجل تشغيل البرنامج او عرض النافذة

    int nResponse = 0;



    // الآن سنتعامل مع المتغير المحرفي الذي اعطيناه قيمة في الاعلى

    // اذا كانت قيمته هي كما هو موضح تحت فالنظام يطلب تشغيل الشاشة لتعديل الاعدادات

    // طبعا برنامجنا الآن لن يقوم بذلك

    // مبدأيا لنمرر الطلب الى النافذة الرئيسية فقط ونتعامل معه هناك

    if ((state == 'c') || (state == 'C'))

    {

    dlg.m_cState = 'c'; // هنا نمرر الطلب

    dlg.DoModal();// وهنا نشغل النافذة الرئيسية

    }

    // اذا كانت القيمة هي الحرف بي يكون النظام يطلب عرض شاشة التوقف في المكان الصغير

    // المخصص في نافذة خصائص العرض

    // وهذه ايضا لا يقوم بها برنامجنا

    // وايضا مبدأيا مرر القيمة وشغل النافذة

    else if ((state == 'p') || (state == 'P'))

    {

    dlg.m_cState = 'p';

    dlg.DoModal();

    }

    // اما اذا كانت القيمة اس

    // فالنظام يطلب تشغيل شاشة التوقف كتجريب مثلا او للعرض

    // لنمرر القيمة ونتعامل معها من النافذة الرئيسية

    else if ((state == 's') || (state == 'S'))

    {

    dlg.m_cState = 's';

    dlg.DoModal();

    }

    // هذه الحالة التي اسفل هي الحالة العادية لتشغيل الشاشة

    else if (state == '+')

    {

    dlg.m_cState = '+';

    dlg.DoModal();

    }



    // الآن بعد ان انتهى عرض الشاشة وتم ايقافها

    // لنفحص هل ضغط المستخدم زر الموافق

    // وهذا يعني انه يريد حفظ اعداداته بعد ان غيرها

    // وبرنامجنا لن يقوم بذلك طبعا

    if (nResponse == IDOK)

    {

    ///هنا سنضع البرمجة المسؤولة عن حفظ اعدادات الشاشة التي غيرها المستخدم

    ///وبما ان برنامجنا لا يحوي اعدادات حتى الآن فابمكانك تركها فارغة تمهيا للتطوير القادم

    }

    return FALSE;

    ___________________________________________________
    لنسجل الآن بعض الملاحظات على هذه الشيفرة:
    أولا
    برنامجك الآن لن يعمل الآن فيجب اضافة متغير عضو الى الصف CDel19Dlg من نوع char مثلا ليحدد للصف المذكور ماذا سيعمل بالتحديد
    اذا اذهب للصف CDel19Dlg واضف متغير عضو سميه m_cState
    بعد ان اضفته يمكنك تشغيل البرنامج
    وهيئه بالقيمة 'p'
    ثانيا
    يجب التغيير داخل الدالة OnInitDialog على الشكل التالي
    افتح الدالة وتحت سطر todo
    اكتب الشيفرة التالية :
    C++ كود
    ____________________________________________________

    // TODO: Add extra initialization here

    // هنا سنتعامل مع القيمم الممررة للنافذة الرئيسية

    // طبعا ترون الآن اننا في النافذة الرئيسية

    // في حالة اراد تعديل الاعدادات

    // لنشغل الشاشة بشكل طبيعي

    // ونترك النافذة ظاهرة

    if (m_cState == 'c')

    {

    IntialMove();

    }

    // اما في حالة انه اراد عرضها بشكل مصغر كما هو تحت

    // لن نرد عليه الآن

    // سنجعلها تشتغل عادي وكاننا ما فهمنا ماذا يريد

    else if (m_cState == 'p')

    {

    IntialMove();

    }

    // اذا اراد عرض الشاشة او تشغيلها

    // سنجعلها تعمل ونخفي النافذة الرئيسية

    else if (m_cState == 's')

    {

    IntialMove();

    }

    else if (m_cState == '+')

    {

    IntialMove();

    }

    _____________________________________________________

    الآن ستعمل الشاشة ولكن اعتقد انك لست راضيا عن عملها
    لماذا لان النافذة ستبقى ظاهرة طوال فترة التنفيذ
    ايضا الشاشة لا تتوقف عندما نحرك الفارة أو نضغط على اي زر
    ايضا مؤشر الفارة يبقى ظاهرا
    وسنقوم بالدرس القادم بتعديل البرنامج ليصحح كل ذلك
    أما الآن فيمكنك رؤية النتيجة بالملفات المرفقة مع الشيفرة
    في هذه المشاركة
    والمشاركة القادمة ستحوي الشيفرة النهائية انشالله
    وربما نطورها بالطريقة الافضل فيما بعد لتصبح شاشة كاملة اذا حدا حب يجرب



    مثبت : تكملة موضوع شاشة التوقغ ج 1  التنفيذ البرنامج Zip


    الملفات المرفقه

      الوقت/التاريخ الآن هو الخميس نوفمبر 21, 2024 6:40 am