مقدمة لتركيبات الدمج Unions
نتكلم عن واحدة من التركيبات الهامة جدا في برمجة الويندوز وهي تركيبات الدمج Unions. سنبدأ بتعريفها، ثم سوف نقوم بالتعرف عليها وشرحها من خلال الأمثلة والتجارب على الكود.
مع محمد الشيمي | اللهم زدنا من علمك ما طلعت شمس وما غار نجم أو تغنت حمامة أو اخضر فرع في الأراك قضيب
وسوم التدوينات‘CPP’
نتكلم عن واحدة من التركيبات الهامة جدا في برمجة الويندوز وهي تركيبات الدمج Unions. سنبدأ بتعريفها، ثم سوف نقوم بالتعرف عليها وشرحها من خلال الأمثلة والتجارب على الكود.
اليوم نأخذ لمحة عن كيفية الوصول إلى الموارد Resources مثل الصور والأيكونات والنصوص Strings والقوائم Menus ونحوها في الفيجوال ستوديو باستخدام لغتي الـ C والـ C++.
هذا الدرس يمثل واحدة من مبادئ مبادئ استخدام الموارد Resources في برنامجك.
درسنا في هذا اليوم يتكلم عن كيفية تحويل الألوان إلى الدرجات من الأبيض إلى الأسود، وكيفية معاينة المحتوى قبل طباعته كما لو كان على طابعة لا تدعم الألوان. يتكلم الدرس أيضا عن كيفية معرفة وضع الطباعة (معاينة/طباعة) وكيفية معرفة نظام الطباعة (ألوان/أبيض وأسود فقط) في MFC.
في MFC يمكنك استخدام الدالة CWinApp::OnIdle() لتنفيذ أوامر في وقت راحة البرنامج Idle-time Processing. بمعنى أنه عندما لا يكون هناك أي رسائل Messages يحتاج البرنامج إلى معالجتها فإن نظام التشغيل يقوم تلقائيا بتنفيذ الأوامر الموجودة في هذه الدالة CWinApp::OnIdle()، وبالطبع هذه الدالة ظاهرية Virtual بحيث يمكنك استخدامها في التصنيفات الخاصة بك المنحدرة من CWinApp.
اليوم نطرح سؤال: هل تستخدم دوال BeginPaint/EndPaint أم تستخدم GetDC/ReleaseDC؟
تلقيت أحد الأسئلة عن مدخلات دالة WinMain() حيث أن المدخل lpCmdLine ترميزه ANSI، فكيف إذا كانت المدخلات لبرنامجك Unicode، كيف تحصل عليها؟
هذه أحد الأفكار البسيطة التي أزعجتني كثيرا (:P) أثناء بداية دراستي للـ C++ والتي أحبب أن أشارككم بها. الفكرة هي، هل أستخدم BOOL أو ربما BOOLEAN؟
درسنا في هذا اليوم يتكلم عن 9 قواعد هامة جدا بالنسبة للتصنيفات Classes في لغات C#، C++/CLI، و ISO/ANSI C++.
تحديدا الدرس اليوم يتكلم عن القواعد المنطبقة على الـ Constructors، Destructors، و Finalizers خاصة في حالة التدرج Hierarchy للتصنيفات، بمعنى أن يكون هناك أب وهناك أبناء. وسنرمز إلى كل نوع من هذه الدوال باسم وهو دوال الإنشاء Constructors، دوال الإزالة Destructors، ودوال الإنهاء Finalizers.
حتى إن لم تكون متقنا للغة أخرى غير الـ C# أو العكس فيمكنك قراءة هذا الدرس ومتابعة ما يخص اللغة التي تعرفها فقط. أيضا لا يشترط الإتقان لأي من اللغات، بل فقط معرفة البدايات للـ Classes والدوال الخاصة مثل Constructors، Destructors، و Finalizers.
بعض الأفكار في هذا الدرس مرتبطة ببعضها بشكل تدريجي. فكل قاعدة من القواعد هي مبنية على فكرة أو أفكار أخذت من القواعد السابقة لها.
والقواعد التي سنتعرض لها هي 9 قواعد وهي كالتالي: