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

طلب شرح كود التعامل مع الرسائل في الmfc

مغلق
بدأه mody5 في 27 يوليو 2007 · 3 رد · 687 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم..

ممكن شرح الكود الأتي (خاصة الكود المتعلق بالتعامل مع الرسائل)

#include <afxwin.h>

class MFC_Tutorial_Window :public CFrameWnd
{
public:
	MFC_Tutorial_Window()
	{
		Create(NULL,"MFC Tutorial Part 2 CoderSource Window");
	}
	void OnLButtonDown(UINT nFlags, CPoint point);
	DECLARE_MESSAGE_MAP()
};

BEGIN_MESSAGE_MAP( MFC_Tutorial_Window, CFrameWnd)
	  ON_WM_LBUTTONDOWN() //Macro to map the left button click to the handler
END_MESSAGE_MAP()

void MFC_Tutorial_Window::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
   CFrameWnd::OnLButtonDown(nFlags, point);
   MessageBox("Left Button clicked");
}


class MyApp :public CWinApp
{
	 MFC_Tutorial_Window *wnd;
public:
	 BOOL InitInstance()
	 {
		 wnd = new MFC_Tutorial_Window();
		 m_pMainWnd = wnd;
		 m_pMainWnd->ShowWindow(1);
		 return 1;
	 }
};

MyApp theApp;
Message.jpg
#2

Up

Message.jpg
#3

Up???

Message.jpg
#4

السلام عليكم

يهدف الكود الى رسم سطر على الواجهة الرسومية يكون ذلك بالنقر بالزر الأيسر للفأرة و ترك الزر مظغوط وتحريكه الى الإحداثيات الجديدة التي تحدد نهاية السطر Drag/Drop

CFrameWnd قسم لإنشاء الواجهة الرسومية

POINT المتغير الرئيسي من نوعstruct الذي يعتمد عليه القسم CPoint

m_StartPoint, m_EndPoint الإحداثيات التي تحدد حدود السطر الذي تود رسمه

CClientDC::MoveTo دالة مستعملة للإنتقال الى إحداثيات معينة

CClientDC::LineTo دالة رسم السطر

CClientDC,CPaintDC, CMetaDC هي بعض الأقسام الفرعية من القسم device context (DC) الذي يتحكم في المخرجات الى الشاشة و الطباعة

#include <afxwin.h>
				   //قسم إنشاء الواجهة الرسومية
				   class MFC_Tutorial_Window :public CFrameWnd
				   {//التعريف الأولي لإحداثيات حدود السطر
						CPoint m_StartPoint, m_EndPoint;
						public:
						MFC_Tutorial_Window()
						{
							 Create(NULL,"MFC Tutorial Part 2 CoderSource Window");
						}
					//دوال  Drag/Drop 
	 void OnLButtonDown(UINT nFlags, CPoint point);
						void OnLButtonUp(UINT nFlags, CPoint point);
//دالة لتحديد أن الزر الأيسر للفأرة هو المعني في هذا التطبيق
 	 DECLARE_MESSAGE_MAP()
				   };

				   BEGIN_MESSAGE_MAP( MFC_Tutorial_Window, CFrameWnd)
						ON_WM_LBUTTONDOWN() //Macro to map the left button click to the handler
						ON_WM_LBUTTONUP() //Macro to map the left button click to the handler
				   END_MESSAGE_MAP()

				   void MFC_Tutorial_Window::OnLButtonDown(UINT nFlags, CPoint point) 
				   {
						// TODO: Add your message handler code here and/or call default

						CFrameWnd::OnLButtonDown(nFlags, point);
//أسند الى المتغيرm_startPoint إحداثيات المكان الذي نقر فيه المستعمل
	  m_StartPoint = point;
 }

				   void MFC_Tutorial_Window::OnLButtonUp(UINT nFlags, CPoint point) 
				   {
						// TODO: Add your message handler code here and/or call default

						CFrameWnd::OnLButtonDown(nFlags, point);
//أسند الى المتغيm_EndPointر إحداثيات المكان الذي توقف فيه الظغط على الزر الأيسر
	  m_EndPoint = point;
						CClientDC dc(this);
 //تسجيل إحداثيات الإنطلاق 
						dc.MoveTo(m_StartPoint);
//   أرسم السطر من إحداثية الإنطلاق المسجلة إلى نقطة الوصول
	dc.LineTo(m_EndPoint);
				   }
				   // ...
				   class MyApp :public CWinApp
				   {
						MFC_Tutorial_Window *wnd;
						public:
						BOOL InitInstance()
						{
							  wnd = new MFC_Tutorial_Window();
							  m_pMainWnd = wnd;
							  m_pMainWnd->ShowWindow(1);
							  return 1;
						 }
				   };

				   MyApp theApp;

				   //End of MFC_Tutorial_3.CPP

لم أبتكر شيء من عندي كل ما قمت به هو قراءة المقال الأصلي لهذا الكود

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

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

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

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

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

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