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

سؤال عن دالة بالسي ++

مغلق
بدأه Shab-7abab في 15 أكتوبر 2004 · 7 رد · 635 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

رمضان كريم عليكم اخواني

أما بعد

عندي استفسار عن اسم الدالة التي تقوم بعملية فحص حالة الزر هل مضغوط ام غير مضغوط

هل توجد دالة تقوم بهذه العملية واذا وجدت هذه الدالة ممكن اسمها والشكل الرسمي لها

اخوكم

شاب حباب

#2

السلام عليكم,

أضن أن ك تقصد بحالة ضغط الأزرار ازرار مثل radiobutton أو chackbutton وإذا كان الزر العادي يعني أن ننقر على الزر ونبقى ضاغطين.فإذا كنت تستعمل مكتبات MFC فعندك عدة دوال تقوم بهذا والعامة منها أضن أنها هي :

CButton::GetState

وهذه الدالة لا تأخذ أي بارامتر وهي ترجع لنا قيمة من نوع UINT .وعلى هذه القيمة يمكن أن نعمل عليها عدة ماسكات لنحدد حال الزر ويمكن أن نشاهد مختلف هذه الماسكات في مكتبة MSDN . فمثلا لو نقوم بالماسك 0x0003 فالنتيجة 1 تعني أن الزر قد اختير وفي الحالة الأخرى لا . وهذا نص من المكتبة :

اقتباس
CButton::GetState

UINT GetState( ) const;

Return Value

Specifies the current state of the button control. You can use the following masks against the return value to extract information about the state:

Mask Meaning

0x0003 Specifies the check state (radio buttons and check boxes only). A 0 indicates the button is unchecked. A 1 indicates the button is checked. A radio button is checked when it contains a bullet (). A check box is checked when it contains an X. A 2 indicates the check state is indeterminate (three-state check boxes only). The state of a three-state check box is indeterminate when it contains a halftone pattern.

0x0004 Specifies the highlight state. A nonzero value indicates that the button is highlighted. A button is highlighted when the user clicks and holds the left mouse button. The highlighting is removed when the user releases the mouse button.

0x0008 Specifies the focus state. A nonzero value indicates that the button has the focus.

Remarks

Retrieves the state of a radio button or check box.

كما يمكن أن نستعمل الدالة : int GetCheck( ) وهذه تعطينا مباشرة 0 إذا لم نختر الزر و 1 في الحالة الأخرى .

وإذا كنا لا نستعمل مكتبة MFC يجب أن نستعمل صيغة هذه الدوال على نحو رسائل وذلك بإرسال رسالة من نوع BM_GETSTATE المقابل للحالة الأولى أو الرسالة BM_GETCHECK المقابل للحالة الثانية.

إلى اللقاء.

#3

تمام جدا ,,

اضافة اذا كنت تقصد الضغط على زر في الكيبورد من الكونسول فقط ,, عليك بالدالة :

char c;
c= getch();

if(c=='a')
cout<<"You clicked a"
.
.
.

وهكذا فقط بتحسس الدالة getch()

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#4

سلام ...

هذه صراحة اول مشاركة لي

في دالة في سي بلس بلس اذا تم ضغط لوحة المفاتيح ام لا وهي

kbhit() -RETURN TRUE IF THE KEYBOARD IS HIT

مثلا تريد لووب تضل ماشية حتى يتم الضغط على اي مفتاح :

while(!kbhit)

}

DO ANYTHING YOU WANT HERE

}

لن تتوقف حتى ينقر اي مفتاح

#5

السلام عليكم اخواني

والله احب اشكركم على ردودكم

--------------------------------------------

chik

اخوية كلامك على الفيجوال سي واني اشتغل في السي ++ تحت نظام الدوز

-------------------------------------------

HGB

شووف استاذي كلامك حلوو اني اختبر زر كيبورد بس اني مااريد اضغط على الزر واشووفة

انضغط ولا لا

اني اريد دالة هية تشووف الزر مضغوط ولا مو مضغووط بنفس الوقت

--------------------------------------------

WOW

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

اني اريد دالة مثلها بس اني اعطيها الزر اللي اريد الدالة تختبرة مضغوط ولا لا

--------------

اتمنى تكونون فهمتوو قصدي

واني اسف تعبتكم معاية

أخوكم

شاب حباب

#6

أعتقد إنك تقصد الدالة GetAsyncKeyState

لاحظ :

مثال لإختبار مفتاح F1 في لوحة المفاتيح

if(GetAsyncKeyState(VK_F1)==-32767)
{
مفتاح  إف1  مضغوط
}

مفتاح Shift

if(GetAsyncKeyState(VK_SHIFT)==-32767)
{
مفتاح شفت مضغوط
}

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

مثال مفاتيح الأسهم:

/index.php?showtopic=45766

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#7

مرحبا شباب

اخوي جاس شوف اني دراستي كلهة تحت نظام الدوووز يعني مشايفين الويندووز

فة الدالة اللي جبتهة انتة صحيحة بالفيجوال سي وتشتغل حلووو

بس بالسي ++ اندر دوووز ماتشتغل ويطلب مني الكومبايلر الهيدر فايل حق الدالة هاذي

وطبعا دورت عليه مالقيتة

لو في اي دالة مثلهة تشتغل بالسي ++ اندر دووز ممكن

واذا ممكن اضيف الهيدر فايل حقها الى مجلد الهيدر فايل في لغتي اندر دوووز

وتشتغل بس ايضا مااعرف منين اجيب الهيدر فايل حقها

ارجووو المساعدة

اخوكم

شاب حباب

#8

:)))

صحيح الرقم 32767- شنو قصتة وعلى شنو يدل وليش هالرقم بالذات

اخوك شاب حباب

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

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