خطوات أساسية لبدء مشروع c++ بواجهة رسومية.
1- إنشاء مشروع واجهة رسومية “الشرح على بيئة تطوير Visual Studio 2013 , Professional”.
مشروع جديد (New Project)
Visual C++
CRL
CRL Empty Project
تسمية المشروع ثم OK
2- إنشاء أول نافذة : ممكن أن تتم بأكثر من طريقة ، سأكتفي بواحدة
Source File >> ثم زر الفأرة اليمين
ADD – New item
UI
Widows Form
النتيجة بعد ضغط زر ADD
3- فتح صفحة الأكواد التي يتم العمل داخلها
النقر مرتين على النافذة يفتح ملف .h وهذه الطريقة لكل بقية المكونات الأزرار وغيرها
الكود يظهر بهذا الشكل ، وهذه إحدى الطرق
4- إظها صندوق الأدوات لاستخدامها ، مثل الأزرار Buttons و مربع النص TextBox … الخ
View
ToolBox
5- إظهار مربع خصائص المكون الذي يحوي اسم المكون والخط ووقت الظهور ..الخ، مثل خصائص النافذة .
في الوضع الافتراضي يكون موجود في الزاوية اليمنى في الأسفل؛ ولكن إن لم يظهر لك :
الزر الأيمن على النافذة – خصائص
ستظهر على الجانب الأيمن ، قم بتثبيتها حتى تكون ظاهرة دائمًا في أسفل الركن الأيمن
6- إضافة Label والكتابة فيه .
من صندوق الأدوات ToolBox أختار Label ثم أسحبه إلى داخل النافذة .
أذهب إلى مربع الخصائص عند خاصية Text أكتب ماتشاء وبإمكانك تغيير لون وحجم الخط ولون خلفية المربع …الخ من الخصائص .
الكتابة
تغيير حجم الخط
النتيجة
7- إضافة Button وبرمجته .
بنفس طريقة الـ label نضيف الزر ، وننقر عليه مرتين لفتح صفحة الكود ، وتغيير خصائص الزر مثل اسمه الظاهر بمثل طريقة الـ label عن طريق مربع الخصائص.
سنقوم ببرمجة الزر ، بحيث عند ضغطه ينقلنا لنافذة أخرى
*تحتاج بدايةً أن تُنشِئ نافذة جديدة بنفس طريقة النافذة الأولى .
أولًا : عمل include للنافذة الجديدة في النافذة الأولى
#include "MyForm1.h"
ثانيًا : كتابة هذا الكود داخل دالة الـ button ، ومن مسميّات الدوال في الكود والتعليقات الموجودة بإمكانك فهم الكود .
// creat a new form of MyForm1 MyForm1^ frm = gcnew MyForm1(); this->Hide(); //Hide MyForm "The Start Form" frm->ShowDialog(); // Show MyForm1
8- في النافذة الأخرى سنضع 2 من الأزرار واحد Exit يخرج من البرنامج والآخر Restart ويعيد تشغيل البرنامج من البداية .
البداية مع Exit .
//Exit Button Application::Exit();
زر إعادة التشغيل
//Start Again Button Application::Restart();
9- تشغيل البرنامج
عند عمل build سيظهر لك هذا الخطأ ، سببه هو أنه يجب أن تعيّن Main Form وهي تقابل Main Function نقطة بداية البرنامج .
Error 1 error LNK1561: entry point must be defined
الحل:
أولًا : أفتح ملف cpp للنافذة الأولى ، موجود في الناحية اليمنى ؛ ثم أكتب بداخله هذا الكود ، وأكتب اسم مشروعك بدل كلمة “اسم المشروع الموجودة”
using namespace System; using namespace System::Windows::Forms; [STAThread] void Main(array<String^>^ args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); اسم المشروع::MyForm form; Application::Run(%form); }
مكان ملف cpp في الجانب الأيمن
الكود
ثانيًا : أذهب إلى خصائص المشروع وأتبع الآتي
Properties>>Configuration Properties->Linker->System
Select Windows (/SUBSYSTEM:WINDOWS) for SubSystem.
Advanced->Entry Point, type in Main >>hit OK.
أعمل Build مرة أخرى ثم Run ستجد أن البرنامج يعمل معك .
في هذا المثال لم أقم بتغيير أسماء النوافذ التي يقترحها البرنامج مثل MyForm ، لذلك عندما تغيّر أسماءها قد لاتعمل معك بعض أكوادي لاختلاف المسميّات ، وأنا أقترح عليك أن لاتغيّر الأسماء بالنسبة لي كانت تسبب مشاكل في الربط .
هناك اختلافات عند العمل مع visual studio 2008 ، بإمكانك مراسلتي إذا كنت تعمل على هذه النسخة ؛ كذلك لدّي مشروع أتممته مع مجموعتي في الجامعة بواجهة رسومية يحوي LinkedList و Stack و Queue بإمكانك مراسلتي أيضًا إذا أحتجت مساعدة قد يكون لدي إجابة أو مررت على نفس الخطأ ؛ أنا أكتب هذا الكلام لأنني رأيت خلال تطوير مشاريع الواجهة الرسومية بالـ c++ أن المصادر شحيحة جدًّا ، لذلك لاأحب أن يواجه غيري صعوبات قد أكون اعرف لها حلًّا .
يجب عليك تسجيل الدخول لكتابة تعليق.