أدوات متقدمة Advanced Controls

فى الفصول السابقه شرحنا مجموعة من الأدوات التى تعتبر الأدوات الأساسيه مثل أداة زر الأوامر ، أداة العنوان ، أداة الكتابة ، صناديق القائمه وأدوات الإختيار وغيرها وشرحنا كيفيه استعمالها.

وفى هذا الفصل نشرح مجموعة أخرى من الأدوات التى تعمل فى بيئه برنامج النوافذ Windows 95 مثل أداة عرض قيم عمليه (Progress Control) ، أداة تغير قيمه عمليه (Trackbar Control) ، أداة زيادة ونقصان قيمه (Spinner Control) و أداة قائمه اختيارات (List Control) ، أداة عرض الإختيارات فى شكل شجرة (Tree Control) ونرى استعمال كل منهم وكيفيه توظيفها.

وفيما يلى عرض سريع لوظيفه كل أداة ثم نتبعه ببرامج نوضح كيفيه توظيف هذه الأدوات.

1. أداة عرض قيم عملية (Progross Control)

تأخذ هذه الأداة الشكل 11-1

clip_image001

فى صندوق الأدوات وعند وضعها على صندوق حوار تأخذ الشكل 11-2

clip_image003

، ومن الشكل 11-2 يتضح أن هذه الأداة عبارة عن مستطيل وبداخله مربعات صغيره تشير هذه المربعات إلى قيمه عمليه معينه ومن أشهر استعمالات هذه الأداة هى عمليه تثبيت البرامج على القرص الصلب والمشهورة بالاسم Installtion حيث تستخدم هذه الأداة لعرض نسبه ما تم نسخه من الأسطوانات إلى القرص الصلب حتى إذا تم نسخ جميع الملفات تكتمل مربعات الأداة الأشارة إلى ذلك وأثناء النسخ تعبر المربعات الصغيرة عن نسبه النسخ ، وتمثل هذه الأداة بإستعمال الفصيله C Progress Ctrl ، وللتعامل مع هذه الأداة يتم استعمال الدوال الأعضاء فى هذه الفصيله مثل SetStep ( ) , SetRange ( ) , SetPos ( ) , Create ( ).

حيث تستخدم الداله Create ( ) لتخليق الأداة وتستخدم الداله SetRange ( ) لتحديد المدى الذى تتحرك فيه الأداة حيث تأخذ الأداة مدى افتراضى من القيمه 0 إلى القيمه 100 ، وتستخدم الداله SetPos ( ) لتحديد موضع مؤشر الأداه (المربعات الصغيره) ، وتستخدم الداله SetSetp ( ) لتحديد مقدار الخطوة التى تتبعها الأداة فى زيادة القيمه.

وهذا ما سوف نراه خلال البرنامج.

2. أداة تغيير قيمه Trackbar Control

تأخذ هذه الأداة الشكل 11-3

clip_image004

فى صندوق الأدوات وعند وضعها على صندوق حوار تأخذ الشكل 11-4

clip_image006

، ومن الشكل 11-4 يتضح أن هذه الأداة عبارة عن مستطيل بداخله مؤشر يتم تحريك هذا المؤشر بإستعمال الفأره ، ووظيفه الأداة هو تغيير قيمه معينه يترتب عليها عمليه معينه وذلك بتحريك المؤشر ، ويوجد ذلك فى برنامج النوافذ عند ضبط سرعه حركة الفأرة ، وليس لهذه الأداة قيمه افتراضيه للمدى ، وتمثل هذه الأداة بالفصيله CSlider Ctrl ولذلك تسمى أحياناً هذه الأداة بالاسم Slider ، ويتم التعامل مع الأداة بالدوال الأعضاء فى الفصيله حيث تستعمل الدالة SetPos ( ) لتحديد موقع المؤشر ، والدالة GetPos ( ) لمعرفة الموقع الحالى لمؤشر الأداة لإستعماله فى عمليه آخرى ، ويستعمل الدالة SetRange ( ) لتحديد المدى الذى يتحرك فيه المؤشر ، وتستعمل الداله GetRange ( ) لمعرفة المدى الذى يتحرك فيه المؤشر وهكذا ، وتوجد مجموعه من الدوال التى تتعامل مع هذه الأداة مثل SetRangeMin ( ) , SetRangMax ( ) ,GetSelection ( ) , SetSelection ( ) , SetTic ( ) ، وغيرها من الدوال التى يمكن الاطلاع عليها من برنامج المساعدة.

3. أداة Spinner

تأخذ هذه الأداة الشكل 11-5

شكل 11-5 clip_image007

فى صندوق الأدوات وعند وضعها على صندوق الحوار تأخذ الشكل 11-6

clip_image009

، ومن الشكل 11-6 تلاحظ أن الأداة عبارة عن مثلثان مقلوبان تقابل قاعدة الأول قاعدة الثانى ، وتستعمل هذه الأداة اكثر من استعمال أشهرها هو وضع أداة كتابة بجوارها هذه الأداة وكتابة القيمه 1 فى أداة الكتابة وربط أداة الكتابة بهذه الأداة بحيث يؤدى نقر المثلث العلوى للأداة إلى زيادة القيمه ويؤدى نقر المثلث السفلى من الأداة إلى نقصان القيمه.

ويتضح هذا الاستخدام فى برنامج النوافذ عند ضبط زمن حافظ الشاشه (Screen Saver) حيث تستعمل هذه الأداة مع أداة الكتابة فى تحديد زمن ظهور حافظ الشاشه.

وتمثل هذه الأداة بالفصيلة CSpinButtonCtrl التى تحتوى على مجموعه من الدوال الأعضاء للتعامل مع هذه الأداة ، فمثلاً تستخدم الداله Create ( ) لتخليق الأداة ، والداله SetRange ( ) لتحديد المدى الذى تتغير فيه قيمه الأداة ، والدالة SetPos ( ) لتحديد موقع قيمه على الأداة ، والداله GetPos ( ) لمعرفة موقع قيمه الأداة ، والداله GetRange ( ) لمعرفه المدى الذى تتغير فيه الأداة ، وغير ذلك من الدوال التى يمكن معرفتها من برنامج المساعدة.

4. أداة القائمة List Control

تأخذ هذه الأداة الشكل 11-7

clip_image011

فى صندوق الأدوات وعند وضعها على صندوق حوار تأخذ الشكل 11-8

clip_image012

، وتستخدم هذه الأداة لعرض مجموعه من الإختيارات ، فهى تشابة أداة القائمه List box ولكنها تختلف عنها فى أن أداة القائمة List box تقوم بعرض قائمه بالإختيارات منها اختيارات نصيه أى كلمات مثل أسماء أشخاص أو أسماء دوال أو غير ذلك. بينما تقوم أداة القائمة List control بعرض قائمه من الإختيارات فى شكل شبكة هذه الإختيارات يمكن أن تكون صور أو رموز مع كلمات. وعند اختيار أحد اختيارات القائمه يتم تنفيذ أمر أو عمليه معينه حسب سطور البرنامج.

وتمثل هذه الأداة بالفصيلة Clist Ctrl التى تحتوى على مجموعة من الدوال الأعضاء للتعامل مع هذه الأداة مثل:

الداله Create ( ) لتخليق هذه الأداة أثناء التنفيذ ، والداله InsertItem ( ) لإضافه عنصر لصندوق القائمه ، والداله SetItemText ( ) لكتابة كلمات عنصر ، والداله SetTextColor ( ) لتغيير لون الكتابة للعناصر ، والداله Set Bk Color ( ) لتغيير لون الخلفيه وهكذا مجموعة كبيره من الدوال يمكنك معرفتها من برنامج المساعدة.

5. أداة عرض الإختيارات فى شكل شجرة Tree Control

وتأخذ هذه الأداة الشكل 11-9

clip_image014

فى صندوق الأدوات وعند وضعها على صندوق الحوار تأخذ الشكل 11-10

clip_image015

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

وتمثل هذه الأداة بالفصيله CTreeCtrl التى تحتوى على مجموعة من الدوال الأعضاء التى تتعامل مع هذه الأداة، مثل الداله Create ( ) لتخليق هذه الأداة أثناء التنفيذ ، InsertItem ( ) التى تستعمل لإضافة عنصر إلى شجرة الإختيارات ، SelectItem ( ) التى تستخدم لإختيار عنصر من شجرة الإختيارات DeleteAll Itemes( ) لحذف جميع عناصر شجرة الإختيارات ، Get Count ( ) لمعرفه عدد عناصر شجرة الإختيارات وغيرها من الدوال الكثيرة.

المثال الأول

افتح ملف البرنامج vcex20-1 من الفهرس Chpt 11 ونفذ البرنامج أو تابع مراحل تصميم وتنفيذ البرنامج تحصل على نتيجه التنفيذ الموجودة بالشكل 11-11.

clip_image017

الشكل 11-11 عبارة عن برنامج من نوع SDI يحتوى على قائمه الإختيارات التقليديه بالإضافة للإختيار Controls الموجود فى نهاية القائمه ، انقر الإختيار Controls تحصل على اختيار فرعى DiAG1 انقر عليه تحصل على صندوق حوار جديد عليه مجموعة أدوات كما بالشكل 11-12.

clip_image019

يحتوى شكل 11-12 على مجموعة أدوات هى أداة عرض القيم Progress وعليها مجموعة من المربعات الزرقاء ، أداة تغيير قيمه Spinner ، أداة كتابة وبها القيمه 0 ثلاث أزرار أوامر مكتوب عليها القيمه 90% , 40% , 10% جرب استعمال البرنامج بالنقر على زر الأوامر المكتوب عليه 10% تلاحظ تغيير عدد المربعات الزرقاء فى أداة Progress بما يعبر عن القيمه 10% ، كذلك عند النقر على الزر 40% و 90% ، جرب النقر على الأداة Spinner بإستمرار لأعلى وبإستمرار لأسفل ولاحظ النتيجه على أداة الكتابة والأداة Progress تلاحظ عند النقر على الطرف العلوى تزداد القيمه داخل أداة الكتابه وتزداد المربعات الزرقاء فى الأداة Progress لتعبر عن زيادة القيم وكذلك العكس عند النقر على الطرف الأسفل للأداة Spinner ، جرب ذلك ثم تابع مراحل تصميم البرنامج.

مراحل تصميم البرنامج

1. إبدأ تطبيق جديد وذلك بإختيار File ثم New ثم Project Work Space ، ثم اكتب اسم للتطبيق وليكن vcex20.

2. اختار نوع البرنامج من النوع Single Document.

3. تابع باقى الخطوات بالنقر على NEXT كل مرة حتى تحصل على شاشه الفصائل (Classes) التى يتكون منها البرنامج ثم Ok ثم Finish ليتم تخليق برنامج بهذه المواصفات.

4. أضف صندوق حوار جديد إلى البرنامج بالخطوات المعتادة وهى أن تختار Insert من القائمه الرئيسيه ثم Resource ثم Dialog فيتم إضافه صندوق حوار جديد.

5. ضع الأدوات على صندوق حوار وغير عناوين الأدوات لتعطى الشكل المطلوب للبرنامج كما فى الشكل 11-13.

clip_image020

6. أضف فصيلة صندوق حوار للبرنامج حتى يتم التعامل معها وذلك بالضغط على المفتاحين Ctrl + W للوصول إلى شاشه Class Wizard فنحصل على شاشه إضافة فصيله جديدة ، اكتب اسم للفصيلة الجديدة وليكن D1 كما فى الشكل 11-14.

clip_image022

- إضافه إختيار القائمة الرئيسيه

7. من شجرة ملفات البرنامج انقر رمز ملفات موارد البرنامج ، ثم انقر مرتين على Menu ثم انقر مرتين على IDR - Main Frame تحصل على الشكل المبدئى لقائمه اختيارات البرنامج ، اضف الاختيار Controls ومنه الاختيار الفرعى Diag1 كما فى الشكل 11-15.

clip_image023

- ربط صندوق الحوار بإختيار القائمه

18. لربط صندوق الحوار بإختيار القائمه حتى يظهر صندوق الحوار عند النقر على اختيار القائمه قم بما يلى:

- من القائمه الرئيسيه من File اختار Open وافتح الملف Main Frame.h

- فى أول الملف اكتب السطر التالى :

# include “D1.h”

- استدعاء صندوق الحوار بإختيار القائمه

19. من شجرة ملفات البرنامج اختار MENU ثم IDR - Main Frame فتحصل على قائمه اختيارات البرنامج ، قف بمؤشر الفأرة على الاختيار Diag1 ثم اضغط المفتاحين Ctrl + W تحصل على شاشه Class Wizard.

20. اختار ID _ Controls_ DiAG1 ثم Command ثم Add Function ثم Ok فيتم إضافة دالة بالاسم On-ID-Controls-DiAG ننفذ هذه الداله عند النقر على هذا الاختيار.

21. اختار Edit Code لكتابه سطور الدالة واكتب السطرين التاليين :

1 : D1 dd1;

2 : dd1. DoModal ( );

فى هذه السطور ، فى السطر رقم 1 يتم تعريف هدف (متغير) بالاسم dd1 من فصيله صندوق الحوار الجديدة D1 ليتم التعامل مع صندوق الحوار عن طريق المتغير.

فى السطر رقم 2 يتم استدعاء الداله DoModal ( ) التى تؤدى إلى ظهور صندوق الحوار الممثل بالمتغير dd1 وهو صندوق الحوار الجديد.

ضبط القيم الإبتدائيه للأدوات

22. يجب ضبط القيم الإبتدائيه لكلاً من الأداة Progress والأداة Spin قبل استعمالها ويتم ذلك بوضع هذه القيم فى دالة تنفذ تلقائياً عند استدعاء صندوق الحوار الموجود به الأدوات وذلك كما يلى :

- من صندوق ملفات البرنامج اختار Dialog ثم IDD-Dialog1 تحصل على صندوق الحوار الجديد.

- اضغط المفتاحين Ctrl + W للوصول إلى شاشه Class Wizard.

- اختار D1 من صندوق العناصر (Object Ids:).

- من صندوق الرسائل (Massages) اختار الرساله WM-INITDIALOG ، ثم اختار ADD FUNCTION فيتم إضافع داله بالاسم ON-WM-INITDIALOG تنفذ عند استدعاء صندوق الحوار الجديد وبالتالى لوضع أى قيم ابتدائيه لصندوق الحوار أو للأدوات الموجودة على صندوق الحوار تكتبها فى هذه الدالة.

- اختار EDIT CODE للكتابه فى هذه الدالة واكتب السطور التاليه :

1 : CProgressCtrl * P = (CprogressCtrl*) GetDlgItem (IDC-Progress1);

2 : P ® SetRange (0,100);

3: P ® SetPos (50);

4 : CSPinButtonCtrl * PS = (CSPinButtonCtrl *) GetDlgItem (IDC-SPIN1);

5 : PS ® SetRange (0,100);

6 : PS ® SetPos (0);

فى هذه السطور يتم تسجيل قيم إبتدائيه للأدوات كما يلى :

فى السطر رقم 1 يتم تعريف مؤشر بالاسم P من نوع الفصيلة Cprogress Ctrl وبالتالى يصلح هذا المؤشر للإشارة إلى أداة Progress ، وهذا ما يحدث حيث تقوم الداله GetDlgItem بالإشارة إلى الإداة IDC-Progress1 وهى أداة Progress الموجودة فى صندوق الحوار والاشارة إليه بالمؤشر P وبالتالى عند الرغبه فى التعامل مع الأداة Progress يتم التعامل مع المؤشر P.

فى السطر رقم 2 يتم استدعاء الداله SetRange ( ) مع المؤشر P (الذى يشير إلى الأداة Progess) مع وضع القيمتين 0 , 100 كمعاملات للداله وهو المدى الذى تتغير فيه الأداة حيث يتغير من القيمه 0 إلى القيمه 100.

فى السطر رقم 3 يتم تحديد الموضع المبدئى لمؤشر الأداة باستخدام الداله Set Pos ( ) وذلك بالقيمه 50 ، ولذلك عند تشغيل البرنامج واستدعاء صندوق الحوار يتم وضع مؤشر الأداة Progess بالقيمه 50 أى فى منتصف الأداة.

فى السطر رقم 4 يتم الاعلان عن مؤشر بالاسم PS ليشير إلى الأداة Spin واستعماله للإشارة إلى الأداة Spin1 باستخدام الداله GetDlgItem ( ).

فى السطر رقم 5 يتم تحديد مدى تحرك الأداة بإستدعاء الداله SetRange ( ).

فى السطر رقم 6 يتم تحديد الوضع المبدئى للأداة وهو القيمه 0.

التحكم فى الأداة Progress

يوجد فى صندوق الحوار ثلاث أزرار مكتوب عليها القيم 90% , 40% , 10% ، وتستخدم هذه الأزرار لتغيير قيمه مؤشر (المربعات الزرقاء) أداة Progress ولتحقيق ذلك نكتب دالة لكل زر أوامر كما يلى :

- دالة زر الأوامر 10%

1 : CProgressCtr * P = (CProgressCtrl *) Get Dlg Item (IDC_Progress);

2 : P ® SetPos (10);

فى السطر رقم 1 يتم الاشارة إلى الأداة باستعمال المؤشر P كما سبق ، فى السطر رقم 2 يتم تغيير قيمه مؤشر الأداة Progress بالقيمه 10 وبالتالى عند النقر على هذا الزر تصبح قيمه مؤشر الأداة 10 (Progress) وتتغير المربعات الزرقاء لتعبر عن ذلك.

- دالة زر الأوامر 90% , 40%

كرر السطرين السابقين فى كلا الدالتين مع تغيير القيمه 10 فى السطر الثانى مرة إلى القيمه 40 ومرة أخرى إلى القيمه 90. ترجم ونفذ البرنامج عند هذه المرحلة وجرب استعماله ولاحظ النتيجة.

توظيف الأداة Spin

المطلوب ربط الأداة Spin بالأداة Progress بحيث يؤدى تغيير قيمه الأداة Spin إلى تغيير مؤشر (المربعات الزرقاء) فى الأداة Progress.

فعند النقر على المثلث العلوى للأداة Spin تزداد القيمه وعند النقر على المثلث السفلى تنقص القيمه مع إظهار القيمه المقابله فى أداة الكتابة المجاورة ويتم تحقيقه ذلك كما يلى :

- اعطاء متغير لأداة الكتابة

لتسجيل القيم فى أداة الكتابة نعطيها متغير من نوع int وذلك بالنقر عليها مرة واحدة بالفأرة ، ثم الضغط على المفتاحين Ctrl + W ثم Member Variable ثم Add Variable ، اكتب اسم للمتغير وليكن M1 واختار نوعه Int.

- كتابة أوامر الأداة Spin

عند النقر على الأداة Spin ترسل الأداة إلى الداله On-Vscroll ( ) لذلك يتم التحكم فى هذه الأداة عن طريق الداله On-Vscroll ( ) الخاصه بصندوق الحوار D1 ولتحقيق ذلك نضيف الداله On-Vscroll ( ) كما يلى:

- اضغط المفتاحين Ctrl + W للوصول إلى الشاشه Class Wizard من صندوق العناصر (Objects Ids) اختار D1 ، ومن صندوق الرسائل (Messages) اختار الرساله WM-VSCROLL ثم Add Function فيتم إضافة دالة بالاسم ON-WM_VSCROLL التى تنفذ عند النقر على المثلث العلوى أو السفلى للأداة Spin (أو اداة Scroll Bar).

- اختار Edit Code لكتابه سطور الدالة واكتب السطور التاليه :

1 : int Poss ;

2 : CSPinButtonCtrl * PS = (CSPinButtonCtrl *)

GetDlgItem (IDC-SPIN1);

3 : CprogressCtrl * P = (Cprogress Ctrl *)

GetDlgItem (IDC_PRogress1) ;

4 : Poss = PS ® GetPos (Poss) ;

5 : P ® Set Pos (Poss) ;

6 : m1 = Poss ;

7 : Up date Data (0) ;

فى هذه السطور

- فى السطر رقم 2 اعلان عن مؤشر بالاسم PS من نوع الفصيله CSPinButtonCtrl وإستعماله للأشارة إلى الأداة (IDC-SPIN1) SPin1 باستعمال الداله GetDlgItem ( ).

- فى السطر رقم 3 اعلان عن مؤشر بالاسم P من نوع الفصيله CProgressCtrl واستعماله للإشارة إلى الأداة (IDC _ Progress1).

- فى السطر رقم 4 يتم تحديد قيمه الأداة Spin1 وذلك بإستدعاء الداله Get Pos ( ) مع المتغير PS الذى يشير إلى Spin1 وتسجيل هذه القيمه فى المتغير Poss.

- فى السطر رقم 5 يتم تسجيل قيمه موضع (المربعات الزرقاء) فى الأداة Progress1 وذلك بإستدعاء الداله GetPos ( ) مع المتغير P الذى يشير إلى الأداة SPin1 مع إرسال المتغير Poss كمعامل للداله GetPos ( ) وبالتالى يتم تسجيل موضع المربعات الزرقاء فى الأداة Progress بنفس قيمه الأداة SPIN1 وكلما تغيرت قيمه الأداة SPIN1 تغيرت المربعات الزرقاء فى الأداة Progress1 حيث يربط بينهما قيمه المتغير Poss.

- فى السطر 6 يتم تسجيل قيمه المتغير Poss (الذى هو قيمه موضع الأداة SPIN1 والأداة Progress) فى المتغير M1 المصاحب لأداة الكتابه IDC-Edit1.

- فى السطر 7 يتم استدعاء الداله UpdateData بالمعامل 0 أى FALSE فيتم نقل قيمه المتغير M1 إلى أداة الكتابة وبالتالى تظهر قيمه المتغير Poss فى أداة الكتابة.

- ترجم ونفذ البرنامج وجرب إستعماله تلاحظ أنه عند النقر على المثلث العلوى أو المثلث السفلى للأداة SPIN1 يتم تغيير القيمه التى تظهر فى أداة الكتابة IDC-Edit1 وتغيير المربعات الزرقاء فى الأداة Progress1 بما يعبر عن هذه القيمه. وبهذا تم توظيف الأداة Spin1 وكذلك الأداة Progress1.

المثال الثانى

يوضح هذا المثال كيفيه توظيف الأداة (Slider) TRACKBar التى تستعمل كبديل جيد لقضيب الإنزلاق الأفقى (H-ScrollBar) ، وقبل متابعه مراحل تصميم البرنامج يمكنك فتح ملف البرنامج Vcex21 من الفهرس Chpt 11 وتنفبذه تحصل على الشكل 11-16.

clip_image025

والشكل 11-16 عبارة عن برنامج من نوع SDI به قائمه الاختيارات بالإضافه لصندوق حوار جديد ، يحتوى صندوق الحوار على أداة Slider وأداة كتابة جرب سحب مؤشر أداة Slider وتحريكه للأمام والخلف تلاحظ تغيير القيمه الموجودة فى أداة الكتابه وجرب النقر على أداة Slider تلاحظ تغيير القيمه أيضاً، ويمكن لنا إستعمال هذه القيمه فى أى عمليه آخرى كما يستعمل فى برامج الصوت حيث تعبر هذه القيمه عن درجة علو الصوت ، وغير ذلك.

مراحل تصميم البرنامج

1. كرر خطوات البرنامج السابق (Vcex 21) من الخطوة رقم 1 إلى الخطوة رقم 21.

وبهذا نكون قد خلقنا برنامج من نوع SDI وأضفنا صندوق حوار جديد بالاسم D1 وتم ربطه باختيار القائمه Diag1.

- ضبط القيمه الإبتدائيه للأداة Slider.

لضبط القيمه الإبتدائيه للإداة Slider نكتب مجموعه الأوامر الخاصه بذلك فى الداله ON-WM-INITDIALCO وذلك كما فى الخطوه رقم 22 فى البرنامج السابق ، اضف هذه الدالة واكتب السطور التاليه:

1 : CSliderCtrl * PSL1 = (CsliderCtrl *) GetDlgItem (IDC-Slide)

2 : PSL1 ® SetRange (0 , 100) ;

3 : PSL1 ® SetPos (0) ;

فى هذه السطور

- فى السطر رقم 1 تم الاعلان عن مؤشر بالاسم PSL1 من نوع الفصيله CSliderCtrl وإستعماله للإشارة إلى الإداة IDC_Slider1.

- فى السطر رقم 2 تم تحديد مدى حركه مؤشر الأداة Slider1 من القيمه 0 إلى القيمه 100 وذلك بإستعمال الداله SetRange ( ).

- فى السطر رقم 3 تم تحديد موضع مؤشر الأداة Slider1 عند البداية أى بالقيمه 0 وذلك بإستعمال الداله SetPos ( ).

توظيف الأداة Slider1

يتم توظيف الأداة Slider من خلال الحدث WM-Hscroll أى حدث الحركة الأفقيه ولتحقيق ذلك نضيف داله لهذا الحدث كما يلى :

- اضغط المفتاحين Ctrl + W ثم اختار D1 من صندوق العناصر ومن صندوق الرسائل اختار الرساله WM-Hscroll ثم Add Funetion فيتم إضافة داله بالاسم ON-WM-Hscroll.

- اختار Edit Code واكتب السطور التاليه :

1 : int gp2 ;

2 : CsliderCtrl * PS12 = (CsliderCtrl *) GetDlgItem (IDC-Slider1) ;

3 : gp2 = PSL2 ® GetPos ( ) ;

4 : m1 = gp2 ;

5 : UpdateData (0) ;

فى هذه السطور

- فى السطر رقم 2 تم الاعلان عن مؤشر بالاسم PSL2 من نوع الفصيلة CsliderCtrl واستعماله للإشاره إلى الأداة IDC-Slider1.

- فى السطر رقم 3 يتم معرفه قيمه موضع مؤشر الأداة Slider1 بإستعمال الداله GetPos( ) وتسجيل النتيجه فى المتغير gp2 ثم وضع هذه القيمه فى المتغير m1 فى السطر رقم 4.

- فى السطر رقم 5 يتم نقل القيمه من المتغير m1 إلى الأداة IDC-Edit1.

ترجم ونفذ البرنامج (Ctrl + F5) وجرب إستعماله تلاحظ أنه عند تحريك مؤشر الأداة Slider1 يتم تغيير القيمه الموجودة فى أداة الكتابة.

تعليقات

المشاركات الشائعة من هذه المدونة

المؤثرات الحسابية في C++

الرسم Graphics

دوال النمط الرسومي في ++C