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

فائدة 4 "الدالة GetKeyState"

مغلق
بدأه عبدالرحمن في 28 يونيو 2001 · 6 رد · 1,924 مشاهدة · في قسم المواضيع الهامة في قسم السي /سي++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكنك معرفة اذا كان مفتاح CTRL او Shift مضغوطا ؟؟

الدالة GetKeyState تمكنك من ذلك .. مثال :->

if(::GetKeyState(VK_SHIFT)< 0)

;(" MessageBox ("shift key is down

اذا كانت القيمة المرتجعة اصغر من الصفر

اذن الزر مضغوط

اما اذا كانت اكبر من الصفر فالزر لم ينضغط

وبالتوفيق

1
#2

أخ عبدالرحمن ،

هذا التابع فقط يستخدم في روتينات التي تعالج رسائل الكيبورد مثل WM_KEYDOWN أو WM_CHAR ... أما إذا أردت استخدام نفس الوظيفة حارج هذه الرسائل فعليك بالتابع GetAsyncKeyState ...

هذا بسبب أن التابع GetKeyState يستخدم المعلومات الموجودة في الرسالة نفسها ...

Coding on the Cloud and for the Cloud!

My Blog

#3

والله الفوائد هاذي حلوة و كل ماشفتها ودي اشارك فيها ، واصل يا اخ عبدالرحمن و إن شاء الله اللي في المنتدى راح يساعدونك ،،

باضيف نقطة صغيرة و هي امكانية معرفة هل الزر شفيت او كنترول مضغوط في حالة حدوث احد احداث الماوس وهو يكون من نوع UINT وهو متغير unsinge integer ، و يسمي الفيجول سي هذا المتغر المرسل في الدالة المعالجة للحدث اسم nFlags عادة و تشيك عن طريقة هل الزر شفيت مضغوط يمقارنة بالثابت MK_SHIFT أو الزر كنترول بالثابت MK_CONTROL .

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

#4

والله فوائدك حلوه اخي عبد الرحمن

بس ما قدرت انفدها وما عرفت كيف :( ياريت تعلمنا شوي فانا كما تعرف مبتدي يادبوك في الفيجول سي ،

مشكور جدا اخي عبد الرحمن

مع تحياتي

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

#5

الله يبارك فيكم

واتمنى منكم التفاعل من خلال الاضافات والملاحظات ..

أخ طارق :-

انا تكلمت في الفائدة 1 عن كيفية اضافة الكود ولكني ساوضح اكثر

اختر new من قائمة file واختر مشروع MFC.EXE .

اختر من مربع الحوار الاول Dialog Based

اجعل جميع الاختيارات كما هي .

سترى الان لوحة الأدوات (مربع نص , زر , زر الراديو وغيرها )

ارسم زر في الفورم . ومن ثم انقر على الزر مرتين لكي تضيف للزر

Function .

انقر OK

ستاتيك الان لوحة البرمجة

الان اكتب الكود السابق تحت التعليق : TODO//

if(::GetKeyState(VK_SHIFT)< 0)

{

MessageBox ("shift key is down");

}

بعد ما تخلص من كتابة الكود >> اختر من القائمة Build الامر Execute.exe

اضغط على المفتاح shift وانقر الزر..

ارجو من الله ان اكون قد وفقت في هذا الشرح .

#6

مشكور جدا اخي عبد الرحمن

انا كنت احسب نفسي معاك في نفس الصف ، بس انت طلعت شاطر وتفوقت علينا ، الباين انك تدرس كويس،

وعموما بارك الله فيك انا راح اجرب يلي قلته واشكرك جدا جدا، وارجو منك ان تستمر في فوائدك هده تراني انا تلميذك وتلميذ الاستاذ هاني. وكل من يشرح درس في الفيجول سي ++

مع تحياتي

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

#7

العفو يا اخ طارق

نصيحة من اخ لاخيه انك تشتري كتاب للفيجوال سي ++

ان شاء الله انك راح تستفيد .

الله يوفقك

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

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