المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: زر Esc
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات لغات البرمجة العام > منتدى مبرمجي C و ++C و C++.NET > أرشيف منتدى قسم السي ++
Hassan Assalih
السلام عليكم

عند إنشاء تطبيق من نوع صندوق حوار (Dialog Based )بواسطة Vc.Net او VC++6 لا ارغب بان يغلق البرنامج عند ضغط Esc لذلك قمت بحذف إستدعاء التابع OnCancel و بالفعل لم يعد يغلق البرنامج عند ضغط Esc ..regular_smile.gif

و لكن البرنامج لم يعد يستجيب عند النقر على الزر X في أعلى يمين الصندوق ....sad.gif ما العمل ..؟؟:confused:

يجب ان أميز ال Message التي تستدعي التابع onCancel فيما إذا كانت من زر Esc أم لا و لكني لم أفلح ... teeth_smile.gifأو قراءة حالة الكيبورد و تميز زر Esc و لكني لم أفلح أيضا ....teeth_smile.gif مالعمل ...؟؟؟ :confused:
أرجو ان ترشدوني ...جزاكم الله

خيرا
و السلام عليكم
Hassan Assalih
السلام عليكم

الحمد لله اشتغلت !!!

الطريقة هي بإضافة التالي :
virtual void OnCancel(void);

إلى تعريف كلاس صندوق الحوار و تنفيذه كالتالي

void CtryDlg::OnCancel(void)
{
SHORT Esc_State = GetKeyState (VK_ESCAPE);
if(!(Esc_State& 0x1000))
{
CDialog::OnCancel();
}


}
و السلام عليكم
إسماعيل عنجريني
جرب PreTranslateMessage
if (pmsg->wParam == VK_ESCAPE)
return true;
هاني الأتاسي
أخ اسماعيل يجب أن تفحص أنها WM_KEYDOWN مع شرطك .. أعتقد أن الحلين مناسبين جدا ..
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.