Professional Documents
Culture Documents
ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ وﺑﻪ أﺳﺘﻌﻴﻦ وﻻﺣﻮل وﻻ ﻗﻮة إﻻ ﺑﺎﷲ اﻟﻌﻠﻲ اﻟﻌﻈﻴﻢ وﻣﻦ اﷲ أﺳﺘﻤﺪ اﻟﻤﻌﻮﻧﺔ واﻟﺘﻮﻓﻴﻖ
ﺳﺒﺤﺎﻧﻚ ﻳﺎرب ﻻ ﻋﻠﻢ ﻟﻨﺎ إﻻ ﻣﺎ ﻋﻠﻤﺘﻨﺎ إﻧﻚ أﻧﺖ اﻟﻌﻠﻴﻢ اﻟﺤﻜﻴﻢ رب زدﻧﻲ ﻋﻠﻤﺎ وﺻﻠﻰ اﷲ ﻋﻠﻰ ﺳﻴﺪﻧﺎ ﻣﺤﻤﺪ
وﻋﻠﻰ ﺁﻟﻪ وﺻﺤﺒﻪ وﺳﻠﻢ ﺗﺴﻠﻴﻤﺎ
أﺧﻲ اﻟﻤﺒﺮﻣﺞ ﺳﻢ اﷲ وﺗﻮآﻞ ﻋﻠﻰ اﷲ واﺑﺪأ ﻣﻌﻲ اﻟﻤﺸﻮار ﻓﺮﺣﻠﺔ اﻷﻟﻒ ﻣﻴﻞ ﻧﺒﺪأ ﺑﺨﻄﻮة
-.1ال MFCاﺧﺘﺼﺎر Microsoft Foundation Classes
-.1.1ﺗﻌﺮﻳﻒ:
إن ال MFCﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻔﺌﺎت ﺻﻤﻤﺘﻬﺎ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ ﺧﺼﻴﺼـﺎ ﻹﻧﺸـﺎء ﺑﺮﻧـﺎﻣﺞ ﻧﻮاﻓﺬﻳـﺔ وذات
واﺟﻬﺔ رﺳﻮﻣﻴﺔ ﻳﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ اﻟﻤﺴﺘﺨﺪم ﺑﺎﻟﻔﺄرة وأدوات اﻟﻤﻌﺎﻳﻨﺔ ،إن آﺘﺎﺑﺔ ﺑﺮﻧـﺎﻣﺞ ﻧﻮاﻓـﺬي ﻳﻤﺮﻧـﻚ ﻋﻠـﻰ
إﻧﺸﺎء واﺳﺘﻌﻤﺎل آﺎﺋﻨﺎت ﻣﻜﺘﺒﺎت MFCأو آﺎﺋﻨﺎت اﻟﻔﺌﺎت اﻟﻤﺸﺘﻘﺔ ﻣـﻦ ، MFCﺑﺮﻧـﺎﻣﺞ Visual C++ﻳﻀـﻊ
ﻓﻲ ﻣﺘﻨﺎول اﻟﻤﺒﺮﻣﺠﻴﻦ اﻷدوات اﻟﺘﻲ ﺗﺴﺎﻋﺪهﻢ ﻓﻲ ﺗﺴﻬﻴﻞ وﺗﺨﺼـﻴﺺ اﺳـﺘﻌﻤﺎل ﻣﻜﺘﺒـﺎت ال MFCآﻤـﺎ
أﻧﻪ ﻳﺤﺘﻮي ﻋﻠﻰ ﻣﻌﺎﻟﺞ ﻟﺘﻮﻟﻴﺪ ﺷـﻴﻔﺮة ال MFCاﻷآﺜـﺮ اﺳـﺘﻌﻤﺎﻻ ﻣﺜـﻞ هﻴﺎآـﻞ MDIو SDIاﻟﺘـﻲ ﻳﺘﻌﺎﻣـﻞ
ﻣﻌﻬﺎ اﻟﻤﺒﺮﻣﺠـﻮن ﺑﻜﺜـﺮة آﻤـﺎ أن ﻓﻴـﻪ ﻣﻌﺎﻟﺠـﺎت ﺗﺘـﻮﻟﻰ اﻟﻘﻴـﺎم ﺑﺘﻮﻟﻴـﺪ ﺷـﻴﻔﺮة اﻟﺮﺳـﺎﺋﻞ Messageوهـﻲ
اﻟﺸﻴﻔﺮة اﻟﺘﻲ ﺑﻮاﺳﻄﺘﻬﺎ ﻳﺘﻌﺮف اﻟﻮﻳﻨﺪوز ﻋﻠﻰ اﻟﺤـﺪث اﻟﻤﺮﺳـﻞ ﻣﺜـﻞ اﻟﻨﻘـﺮ ﺑـﺰر اﻟﻤـﺎوس واﻟﻀـﻐﻂ ﻋﻠـﻰ
ﻟﻮﺣﺔ اﻟﻤﻔـﺎﺗﻴﺢ وﻏﻴﺮهـﺎ ﻣـﻦ اﻷﺣـﺪاث ﻣﻤـﺎ ﻳﺠﻌـﻞ اﻟﻤﺒـﺮﻣﺠﻴﻦ ﻳﻬﺘﻤـﻮن أو ﻳﺮآـﺰون ﻓﻘـﻂ ﻋﻠـﻰ ﺑﺮﻧـﺎﻣﺠﻬﻢ
اﻟﻤﻨﻮط ﺑﻬﻢ ﺑﻮاﺳﻄﺔ اﺳﺘﺪﻋﺎء وﻇﺎﺋﻒ ال MFCاﻟﺠﺎهﺰة أو ﺗﻄﻮﻳﺮ ﻓﺌﺎت ﺗﺮﺗﻜﺰ ﻋﻠﻴﻬﺎ ﺗﻜﻮن أآﺜﺮ آﻔﺎءة.
وﻋﻨﺪﻣﺎ ﻧﻨﺸﺊ ﻣﺸﺮوع MFCﻓﺈن Visual C++ﻳﻨﺸﺊ إﻃـﺎر ﻋﻤـﻞ ﻳﻀـﻢ ﺟﻤﻴـﻊ اﻟﻤﻠﻔـﺎت اﻟﺘـﻲ ﻳﺘﻌﺎﻣـﻞ
ﻣﻌﻬﺎ اﻟﻤﺸـﺮوع ﻣﺜـﻞ ﻣﻠﻔـﺎت اﻟﻤـﻮارد Resourceوﻣﻠﻔـﺎت اﻟﻔﺌـﺎت اﻟﺘـﻲ ﺗﻨﺘﻬـﻲ ﺑﺎﻻﻣﺘـﺪاد hوﻏﻴﺮهـﺎ ﻣـﻦ
اﻟﻤﻠﻔﺎت.
-.2.1ﻣﻼﺣﻈﺔ:
آﻞ ﻓﺌﺎت MFCﺗﺤﻤﻞ اﺳﻤﺎ ﻳﺒﺘﺪئ ﺑـﺎﻟﺤﺮف Cﻣﺜـﻞ CDocument,CViewﻟﻬـﺬا ﻳﻨﺼـﺢ ﺑﺸـﺪة اﻟﺘـﺰام هـﺬا
اﻷﻣﺮ ﻹﻧﺸﺎء ﻓﺌﺎت ﻧﻈﻴﻔﺔ وﻓﻌﺎﻟﺔ وأﻳﻀﺎ ﻗﻴﺎﺳﻴﺔ.
أﻣﺎ أﻋﻀﺎء اﻟﻔﺌﺎت Membersﻓﺈﻧﻬﺎ ﺗﺴﺘﻬﻞ ﺑﺎﻟﺒﺎدﺋﺔ _m
23ﺑﻨﺎء ﺗﻄﺒﻴﻖ ﻧﻮاﻓﺬي ):(Windows
-.1.3ال :AppWizard
ﻳــﻮﻓﺮ Visual C++ﻣﻌﺎﻟﺠــﺎ ﻳــﺪﻋﻰ AppWizardﻳﺘــﻮﻟﻰ وﻳﻐﻨﻴﻨــﺎ ﻋــﻦ ﻣﻬﻤــﺔ ﻋﻈﻴﻤــﺔ وهــﻲ ﺑﻨــﺎء هﻴﻜــﻞ
اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﻧﻮد ﺗﻄﻮﻳﺮﻩ ﻓﻬﻮ ﻳﻌﺮﱢف ﺗﻠﻘﺎﺋﻴﺎ ﺟﻤﻴﻊ اﻟﻔﺌﺎت اﻟﻀﺮورﻳﺔ ﻟﺘﻄـﻮﻳﺮ ﺑﺮﻧـﺎﻣﺞ وﻳﻨـﺪوز ﻋﻠـﻰ أي ﻧﻤـﻂ
ﺗﺮﻳﺪﻩ وﻓﻴﻤﺎ ﻳﻠﻲ ﻋﺮض ﻟﻜﻴﻔﻴﺔ اﺳﺘﻌﻤﺎل هﺬا اﻟﻤﻌﺎﻟﺞ اﻟﺴﺤﺮي اﺗﺒﻊ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ:
ﻓﻲ أﻏﻠﺐ اﻷﺣﻴﺎن ﻳﺴﺘﺤﺴﻦ اﻻﺣﺘﻔﺎظ ﺑﺎﻟﻘﻴﻢ اﻻﻓﺘﺮاﺿﻴﺔ ﻓﻲ اﻟﺨﻄﻮات 6 5 4و 7
اﻟﺨﻄﻮة :4ﺗﺤﺪﻳﺪ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮﺑﻮﻃﺔ ﺑﺎﻟﺘﻄﺒﻴﻖ ) ﺧﻴﺎر ﻣﺤﺘﻤﻞ ﻋﻨﺪ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﻨﺎت(.
اﻟﺨﻄﻮة :5هﺬﻩ اﻟﺨﻄﻮة ﻟﺮﺑﻂ آﺎﺋﻨﺎت OLEو ActiveXﺑﺎﻟﺘﻄﺒﻴﻖ ﻏﺎﻟﺒﺎ ﻳﻜﻮن اﻟﺘﻄﺒﻴﻖ ﺑﺤﺎﺟﺔ إﻟـﻰ ﻣﻠﻔـﺎت
ActiveXأﺧﺮى.
اﻟﺨﻄﻮة :6ﻗﺎﺋﻤﺔ ﻟﺨﻴﺎرات ﻣﺘﻌﺪد ﻳﺪﻣﺠﻬﺎ اﻟﻤﻌﺎﻟﺞ ﻓﻲ ﺗﻄﺒﻴﻘﻚ ﻣﺜـﻞ إدراج ﺷـﺮﻳﻂ اﻟﺤﺎﻟـﺔ ودﻋـﻢ آﺎﺋﻨـﺎت
ﺛﻼﺛﻴﺔ اﻷﺑﻌﺎد وﻏﻴﺮهﺎ اﺧﺘﺮ ﻣﻨﻬﺎ ﻣﺎ ﺗﺸﺎء.
اﻟﺨﻄﻮة :7اﺧﺘـﺮ ﻧﻤـﻂ Styleاﻟﺘﻄﺒﻴـﻖ ﺧﻴـﺎر Windows Explorerﻳﻨﺸـﺊ اﻟﺒﺮﻧـﺎﻣﺞ ﺷـﺒﻴﻪ ﺑﻤﺴﺘﻜﺸـﻒ
اﻟﻮﻳﻨﺪوز.
اﻟﺨﻄﻮة :8اﺧﺘﺮ اﻟﻔﺌﺔ اﻟﺘﻲ ﻳﻌﺘﻤﺪ ﻋﻠﻴﻬﺎ اﻟﺘﻄﺒﻴﻖ
ﺑﻌﺪ ﺗﻔﺴـﻴﺮ اﻟﺒﺮﻧـﺎﻣﺞ وﺗﺸـﻐﻴﻠﻪ ﺳﻨﺤﺼـﻞ ﻋﻠـﻰ ﺗﻄﺒﻴـﻖ Windowsﻗﻴﺎﺳـﻲ )اﻟﻨﺎﻓـﺬة اﻟﺮﺋﻴﺴـﻴﺔ اﻟﻘـﻮاﺋﻢ
ﺷﺮﻳﻂ اﻷدوات (...وذﻟﻚ ﺑﺪون آﺘﺎﺑﺔ ﺳﻄﺮ واﺣﺪ ﻣﻦ اﻟﻜﻮد أﻟﻴﺲ هﺬا راﺋﻌﺎ!.
هﺬا اﻟﺘﻄﺒﻴﻖ ﻣﺒﻨﻲ ﻋﻠﻰ واﺟﻬﺔ ﻣﺘﻌﺪدة اﻟﻤﺴﺘﻨﺪات MDIﻓﻴﻤﻜﻨﻚ إﻧﺸﺎء أآﺜﺮ ﻣﻦ ﻣﺴﺘﻨﺪ واﺣـﺪ ﻓـﻲ ﺁن
واﺣﺪ ﺟﺮب اﻷﻣﺮ Newﻣﻦ اﻟﻘﺎﺋﻤﺔ . File
: ﺗﺸﺨﻴﺺ اﻟﺘﻄﺒﻴﻖ-.1 .4
. InitInstance ﺑﻴﺎن آﻴﻒ ﻳﺒﻨﻰ اﻟﺒﺮﻧﺎﻣﺞ واﻟﻄﺮﻳﻘﺔ. 1. 4
ﺗﺒﻴﻦ هﻨﺪﺳﺔ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻌﺎﻣـﺔ وآﻴـﻒ ﻳـﺘﻢ ﺑﻨـﺎؤﻩ آـﻮد هـﺬﻩCDemoApp ﻣﻦ اﻟﻔﺌﺔInitInstance اﻟﻄﺮﻳﻘﺔ
أﻣﺎ أﻧﺎ وأﻧﺖ ﻋﺰﻳﺰي اﻟﻤﺒﺮﻣﺞ ﻓـﻼ ﻳﻬﻤﻨـﺎ ﻣـﻦ هـﺬا اﻟﻜـﻮدAppWizard اﻟﻄﺮﻳﻖ ﻳﺘﻢ ﺗﻮﻟﻴﺪﻩ ﺑﻮاﺳﻄﺔ اﻟﻤﻌﺎﻟﺞ
:ﺳﻮى اﻟﺴﻄﻮر اﻟﺘﺎﻟﻴﺔ
…
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
MDIإﻧﺸﺎء ﻣﺴﺘﻨﺪ ﻣﻦ ﻧﻮع
IDR_DEMOTYPE,
RUNTIME_CLASS(CDemoDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CDemoView));
AddDocTemplate(pDocTemplate);
// create main MDI Frame window إﻧﺸﺎء إﻃﺎر اﻟﻨﺎﻓﺬة اﻟﺮﺋﻴﺴﻴﺔ
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
…
اﻟﻮﺳــﻴﻂ اﻷول ﻟﻠﻄﺮﻳﻘــﺔ CMultiDocTemplateوهــﻮ IDR_DEMOTYPEﻳﻌــﺮف اﻟﻘﺎﺋﻤــﺔ وﺷــﺮﻳﻂ
اﻷدوات اﻟﻤﺴﺘﻌﻤﻼن ﻓﻲ اﻟﺘﻄﺒﻴﻖ واﻟﻮﺳﺎﺋﻂ اﻟﺜﻼﺛﺔ اﻟﺘﺎﻟﻴﺔ ﺗﻌﺮف اﻟﻤﺴﺘﻨﺪ ) (CDemoDocاﻟﻨﺎﻓﺬة اﻹﺑـﻦ
) (CChildFrameو اﻟﻤﻨﻈﺮ Viewاﻟﻤﺮﺑﻮط ﻣﻊ اﻟﻤﺴﺘﻨﺪ )(CDemoView
أﻣﺎ اﻟﻤﺎآﺮو RUNTIME_CLASSﻓﻬﻮ ﻳﺴﻤﺢ ﺑﺘﻌﻴﻴﻦ ﻧﻮع اﻟﻔﺌﺔ أﺛﻨﺎء اﻟﺘﺸﻐﻴﻞ
- .2 .4إﺿﺎﻓﺔ اﻟﻜﻮد :ﻣﺜﺎل ﻣﻊ اﻟﻄﺮﻳﻘﺔ .Ondraw
آﻞ ﻓﺌﺔ ﻣﻦ اﻟﻨﻮع CViewﺗﺸﺘﻤﻞ ﻋﻠﻰ اﻟﻄﺮﻳﻘﺔ OnDrawﻳﻮﻟـﺪهﺎ اﻟﻤﻌـﺎﻟﺞ AppWizardﺗﺴـﻤﺢ ﺑﺎﻟﻜﺘﺎﺑـﺔ
أو اﻟﺮﺳﻢ ﻓﻲ اﻟﻤﻨﻈﺮ . View
اﻟﻄﺮﻳﻘﺔ OnDrawﺗﺄﺧﺬ اﻟﻮﺳﻴﻂ pDCﻣﻦ اﻟﻔﺌﺔ CDCأﻧﻈﺮ إﻟﻰ اﻟﻜﻮد اﻟﻤﻮﻟﺪ:
//////////////////////////////////////////////////
// CDemoView drawing
)void CDemoView::OnDraw(CDC* pDC
{
;)(CDemoDoc* pDoc = GetDocument
;)ASSERT_VALID(pDoc
// TODO: add draw code for native data here
}
ﻓﻲ اﻟﻨﻤﻮذج Insert Resourceاﻧﺸﺮ اﻟﻌﻨﺼﺮ Dialogواﺧﺘﺮ ﻧﻮع اﻟﻨﻤﻮذج وﻟﻴﻜﻦ ﻣﺜﻼ “.”FormView
أﺿﻒ ﺑﺎﻟﻤﺎوس ﻣﻦ ﺻﻨﺪوق اﻷدوات زري أﻣﺮ إﻟﻰ اﻟﻨﻤﻮذج اﻟﺠﺪﻳﺪ.
اﻧﻘﺮ ﺑﺰر اﻟﻔﺄرة اﻷﻳﻤﻦ ﻋﻠﻰ أﺣﺪ اﻟﺰرﻳﻦ واﺧﺘﺮ اﻷﻣﺮ “ ”Propertiesﺗﻈﻬﺮ ﻟﻚ اﻟﻨﺎﻓﺬة اﻟﺘﺎﻟﻴـﺔ اﻟﺘـﻲ ﺗﺘـﻴﺢ ﻟـﻚ
ﺗﻐﻴﻴﺮ ﺧﺼﺎﺋﺺ اﻷدوات ﻣﺜﻞ اﻟﺘﺴﻤﻴﺔ Captionوﻣﻌﺮف IDاﻷداة وﻏﻴﺮهﺎ ﻣﻦ اﻟﺨﺼﺎﺋﺺ.
ﺑﻘﻴﺖ اﻟﻨﻘﻄﺔ اﻟﻬﺎﻣﺔ وهﻲ إﺷﺮاك اﻟﻨﻤﻮذج ﺑﻔﺌﺔ ﻣﻮﺟﻮد أو ﺟﺪﻳﺪة وهﻲ ﺗﻌﺘﺒﺮ روح اﻟﺘﻲ ﺑﻬﺎ ﺣﻴﺎة اﻟﻨﻤـﻮذج
اﻟﺘﻲ ﻳﻤﻜﻨﻨﺎ ﻣﻦ ﺧﻼﻟﻬﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷﺣﺪاث واﻟﺨﺼﺎﺋﺺ واﻟﻄﺮق
ﻹﺷﺮاك ﻓﺌﺔ ﺟﺪﻳﺪة ﺑﺎﻟﻨﻤﻮذج اﻧﻘﺮ ﺑﺰر اﻟﻤﺎوس اﻷﻳﻤﻦ ﻋﻠﻰ ﻣﻜﺎن ﻓـﺎرغ ﻓـﻲ اﻟﻨﻤـﻮذج واﺧﺘـﺮ ﻣـﻦ اﻟﻘﺎﺋﻤـﺔ
اﻟﻤﻨﺴﺪﻟﺔ اﻟﺨﻴﺎر “”ClassWizard
ﺳﻨﻨﺸﺊ ﻓﺌﺔ ﺟﺪﻳﺪة وﻋﻨﺪ ﻇﻬﻮر اﻟﻨﺎﻓﺬة اﻟﻤﻮاﻟﻴﺔ اآﺘﺐ اﺳﻢ اﻟﻔﺌﺔ ﻓﻲ اﻟﺨﺎﻧﺔ Nameﻣﻊ ﻣﺮاﻋـﺎة اﻟﺒﺎدﺋـﺔ
Cوﻟﻴﻜﻦ اﺳﻢ اﻟﻔﺌﺔ CFormulaireﺛﻢ ﺣﺪد ﻧﻮع اﻟﻔﺌﺔ ﻋﻠﻰ اﻟﻌﻨﺼﺮ .CFormView
ﻟﺘﻐﻴﻴﺮ آـﻮد اﻟﻄﺮﻳﻘـﺔ InitInstanceاﻟﺘﺎﺑﻌـﺔ ﻟﻠﻔﺌـﺔ CDemoAppاﻧﻘـﺮ ﻋﻠـﻰ اﻟﺸـﺮﻳﺤﺔ " "Class Viewاﻧﻘـﺮ
ﻋﻼﻣﺔ اﻟﺠﻤﻊ ﻓﻲ اﻟﻔﺌﺔ CDemoAppﺛﻢ اﻧﻘﺮ ﻧﻘﺮا ﻣﺰدوﺟﺎ ﻋﻠﻰ اﺳﻢ اﻟﻄﺮﻳﻘﺔ .InitInstance
#include "Formulaire.h"
ﻱﻀﺎف ﻓﻲ أﻋﻠﻰ اﻟﻔﺌﺔ
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_DEMOTYPE,
RUNTIME_CLASS(CDemoDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CFormulaire));
CFormulaire إﻟﻰView ﻏﻴﺮ ال
AddDocTemplate(pDocTemplate);
ﺑﻤﺠﺮد إﻧﺸﺎء ﻓﺌﺔ ﻣﻦ ﻧﻮع Splitterﻳﺠﺐ ﺗﻌﺮﻳﻒ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻲ ﺳﻨﺪﻣﺠﻬﺎ ﻓﻲ إﻃﺎر واﺣﺪ وﻧﻔﺼﻠﻬﺎ ﺑﺎﻟﻔﺎﺻﻞ
اﻟﻔﺌﺔ CSplitterﺗﺤﺘﻮي ﻋﻠﻰ ﻃﺮﻳﻘﺔ ﺗﻨﺸﺄ ﺗﻠﻘﺎﺋﻴﺎ ﺗﻘﻮم ﺑﻬﺬﻩ اﻟﻤﻬﻤـﺔ ﺣﺴـﺐ اﻟﻤﺘﻄﻠﺒـﺎت وهـﻲ اﻟﻄﺮﻳﻘـﺔ
.OnCreateClient
CSplitter هﺎهﻮ اﻟﻜﻮد اﻟﻤﻮﻟﺪ أﺛﻨﺎء إﻧﺸﺎء اﻟﻔﺌﺔ
BOOL CSplitter::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext*
pContext)
{
return m_wndSplitter.Create(this,
2, 2, // TODO: adjust the number of rows, columns
CSize(10, 10), // TODO: adjust the minimum pane size
pContext);
}
اﻧﻘﺮ “ ”Add Functionﻏﻴﺮ إن ﺷﺌﺖ اﺳﻢ اﻟﺤﺪث ﺑﺎﺳﻢ ﻣﻌﺒﺮ ﺛﻢ اﻧﻘﺮ “.”Edit Code
}
-.2 .5ﺗﻔﻌﻴﻞ اﻷﺣﺪاث:
واﻵن ﻟﻨﺮﺑﻂ اﻟﻜﻮد ﺑﺎﻟﺤﺪث ﺳﻴﺘﻢ إﺟﺮاء ﻣﺎ ﻳﻠﻲ ﻋﻨﺪ اﻟﻨﻘﺮ ﻋﻠﻰ اﻟﺰر
9اﺳﺘﺮﺟﺎع آﺎﺋﻦ اﻟﻤﺴﺘﻨﺪ اﻟﻤﺸﺘﺮك ﻣﻊ اﻟﻨﻤﻮذج
9إﻟﺤﺎق اﻟﻘﻴﻤﺔ ﺑﺎﻟﻤﺘﻐﻴﺮ اﻟﺬي ﺳﺘﻌﺮض ﻗﻴﻤﺘﻪ ﻋﻠﻰ اﻟﻤﻨﻈﺮ هﺬا اﻟﻤﺘﻐﻴﺮ ﻣﻦ ﻧﻮع CString
9ﺗﺤﺪﻳﺚ اﻟﻘﻴﻤﺔ اﻟﺠﺪﻳﺪة ﺑﻮاﺳﻄﺔ اﻟﻄﺮﻳﻘﺔ UpdatData
9اﺳﺘﺪﻋﺎء ﻃﺮﻳﻘﺔ اﻟﻌﺮض UpDateAllViewsاﻟﺘﻲ ﺑﺪورهﺎ ﺗﺴﺘﺪﻋﻲ اﻟﻄﺮﻳﻘﺔ OnDraw
/////////////////////////////////////////////////////////////////////////////
// CFormulaire message handlers
void CFormulaire::OnButton1()
{
CDemoDoc *pDoc = (CDemoDoc *)GetDocument();
pDoc->hello = ";"ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ
UpdateData(TRUE);
pDoc->UpdateAllViews(this);
}
ﻓﻲ أﻋﻠﻰ اﻟﻔﺌﺔDemoDoc ﻻ ﺗﻨﺲ ﺗﺼﺮﻳﺢ اﻟﻤﻠﻒ
#include "DemoDoc.h"
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
hello = "";
return TRUE;
}
ﺑـﺰر اﻟﻤـﺎوسCDemoDoc ﺛـﻢ اﻧﻘـﺮ ﻋﻠـﻰ اﻟﻔﺌـﺔClass View اﻧﻘﺮ ﻋﻠـﻰ اﻟﺸـﺮﻳﺤﺔhello ﻟﺘﺼﺮﻳﺢ اﻟﻤﺘﻐﻴﺮ
: ﺗﻈﻬﺮ ﻟﻚ اﻟﻨﺎﻓﺬة اﻟﺘﺎﻟﻴﺔAdd Member Variable اﻷﻳﻤﻦ واﻧﻘﺮ
وﺳـﻴﺘﻢ إدراج اﻟﻤﺘﻐﻴـﺮ وﻟﻠﺘﺤﻘـﻖ ﻣـﻦ ذﻟـﻚ ﺳـﺘﺠﺪﻩ ﺿـﻤﻦ ﻋﻘـﺪOk ﺑﻌﺪ إدﺧﺎل اﻟﻤﻌﻄﻴﺎت اﻟﺼﺤﻴﺤﺔ اﻧﻘﺮ
.اﻟﺸﺠﺮة ﺿﻤﻦ اﻟﻔﺌﺔ اﻟﺘﺎﺑﻊ ﻟﻬﺎ
ﻧﻔﺬ اﻟﺒﺮﻧﺎﻣﺞ واﻧﻘﺮ ﻋﻠﻰ اﻟﺰر اﻷول ﺳﺘﻜﺘﺐ اﻟﺒﺴﻤﻠﺔ ﻓﻲ اﻟﻤﻨﻈﺮ اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﻤﺴﺘﻨﺪ :
: ﻋﺮض ﻣﺮﺑﻊ ﺣﻮار-.3 .5
void CFormulaire::OnButton2()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
CDialogue *dial = new CDialogue ();
if (dial->DoModal() == IDOK) ﺗﻌﺮض ﻣﺮﺑﻎ اﻟﺤﻮار وﺗﻌﻴﺪDoModal اﻟﻄﺮﻳﻘﺔ
OK إن ﻧﻘﺮ اﻟﻤﺴﺘﺨﺪم ﻋﻠﻰIDOK اﻟﺜﺎﺑﺖ
AfxMessageBox (";)"اﻟﺤﻤﺪ ﷲ
CANCEL إن ﻧﻘﺮ ﻋﻠﻰIDCANCEL أو
}
OK إن ﻧﻘﺮ اﻟﻤﺴﺘﺨﺪم ﻋﻠﻰ
ﺳﻴﻌﺮض اﻟﺒﺮﻧﺎﻣﺞ ﻣﺮﺑﻊ رﺳﺎﻟﺔ
وﻹﺿﺎﻓﺔ ﻗﺎﺋﻤﺔ ﺟﺪﻳﺪ اﺳﺤﺐ اﻟﻤﺴـﺘﻄﻴﻞ اﻟﻔـﺎرغ إﻟـﻰ اﻟﻤﻜـﺎن اﻟﻤﺤـﺪد واآﺘـﺐ اﺳـﻢ اﻟﻘﺎﺋﻤـﺔ اﻟﺤـﺮف &
ﻳﻨﺸﺊ اﺧﺘﺼﺎر ﻓﻲ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﻴﺢ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ Altواﻟﺤﺮف اﻟﺬي ﺑﻌﺪ &
-.2 .6إﺿﺎﻓﺔ أﻣﺮ إﻟﻰ اﻟﻘﺎﺋﻤﺔ:
اﻧﻘﺮ ﻓﻲ اﻟﻤﻨﻄﻘﺔ اﻟﻔﺎرﻏﺔ ﺗﺤﺖ اﻟﻘﺎﺋﻤﺔ Demoوأدرج أﻣﺮا ﺟﺪﻳﺪا ﺑﺎﻟﺨﺼﺎﺋﺺ اﻟﺘﺎﻟﻴﺔ:
واﻟﻨﺘﻴﺠﺔ:
وإﻟﻰ اﻟﻠﻘﺎء ﻣﻊ دروس أﺧﺮى ﻣﺘﻘﺪﻣﺔ وهﻲ:
9ﺗﻌﺪد اﻟﻔﻮاﺻﻞ
9إﻧﺸﺎء ﺻﻔﺤﺎت اﻟﺨﺼﺎﺋﺺ ذات اﻟﺸﺮاﺋﺢ
9ﻣﺮﺑﻌﺎت اﻟﺨﻴﺎر
9أزرار اﻟﺨﻴﺎر )رادﻳﻮ(
9ﻣﺮﺑﻊ اﻟﺴﺮد ListBox
9ﻣﺮﺑﻊ اﻟﻜﺘﺎﺑﺔ واﻟﺴﺮد
9ﻣﺮﺑﻊ اﻟﻨﺺ
أرﺟﻮ ﻣﻨﻜﻢ اﻟﺪﻋﺎء واﻟﺴﻼم ﻋﻠﻴﻜﻢ
اﻟﻤﺸﺮوع ﻣﺮﻓﻖ ﻣﻊ اﻟﻤﻠﻒ