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

كيف اعرف مكان ضغطة الماوس في Dialog Based ؟

بدأه مجلـد جديـد في 12 مايو 2008 · 9 رد · 1,011 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي dialog في vs c++ 2005 ومعرف داخله object من نوع CClientDC حتى ارسم عن طريقة

اريد ان اخذ احداثيات ال x و y عندما يقوم المستخدم بالضغط داخل ال dialog

كيف ؟

#2

ابحث عن مايسمى بالـ picking

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#3

استخدمت ال Messages لكنه وضع دالة جديدة !

اريد عندما يقوم بالضغط مرتين باليسار اخذ احداثيات النقطة point و اسنادها الى متغير global مثلا من نفس النوع ، ثم طباعة الاحداثي x و y

واريد هذا الشيء ان يتكرر وان يحدث كلما ضغطت مرتين باليسار

مع ملاحظة ان طباعة الاحداثيات لا يتم في نفس دالة OnLButtonDblClk ، بل في دالة اخرى في نفس الملف ومن نفس class وهو dialog

#4

لا ادري ان كان سؤالي صعب لهذه الدرجة :S

الدالة الاولى وهي الي تقوم بالتقاط احداثيات الماوس عند الضغط مرتين :

void MyDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{
	// TODO: Add your message handler code here and/or call default
	p = point;

	CDialog::OnLButtonDblClk(nFlags, point);
}

فقط تقوم باسناد قيمة النقطة الى المتغير ال global كما هو واضح p

لا يمكن تغير void الى CPoint لانه لا يقبل بذلك

الدالة الثانية والتي اريد ان اطبع من خلالها الاحداثي x كلما قمت بالضغط مرتين باليسار :

void MyDlg::OnBnClickedStart()
{

int x = p.x;
CString temp;
temp.Format(_T("%d"), x);
MessageBox(temp);
{
#5

uppppppppppppp

#6
void CdlgDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{

	CClientDC dc(this);


	dc.MoveTo(point);
	dc.LineTo(m_pnt);
	m_pnt = point;

	CDialog::OnLButtonDblClk(nFlags, point);
}

post-89187-1210958047_thumb.jpg

( _ /)

(='.'=)

(")-(")

#7

حيث m_pnt هي متغير عضو في الطبقة الخاصة بالـ dialog

( _ /)

(='.'=)

(")-(")

#8

قرأت سؤالك كثيرا ولم أفهم ما المطلوب الضبط؟

أنت تضع سؤال وتجيب غليه بالكود/

على كل، اذا كنت تقصد الكتابة على النافذة نفسها فاستخدم الدالة Textout أو ربما OutText

#9

garo

شكرا لك على الرد

دالة OnLButtonDblClk اريدها فقط ان تخزن قيمة point في متغير global ، ويكون هناك دالة اخرى في نفس class تقوم باستخدام هذا المتغير ال global وتستخرج منه الاحداثي x & y

اسماعيل ابراهيم

نعم ، الكود الذي وضعته هو الجواب ، لكنه لا يعمل 100% ، المفروض انه عندما اقوم بالضغط على الزر الايسر للفأره فان الكود الموجود داخل دالة OnBnClickedStart يبدأ العمل ، مع ملاحظة ان الكود الموجود داخل دالة OnBnClickedStart هو لطباعة الاحداثي x عن طريق استخدام MessageBox .

#10

again, up :(

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…