*. أتمنى أن تكونوا في تمام الصحة والعافية.*
---------------------------------------------------------------------------------------------------------------
في الدرس السابق تعلمنا ما معنى API والمتغيرات تكون مختلفه بلاسماء وتسمى Hungarian Notation
في درس اليوم سوف نتعلم ماهيه النوافذ والمقابض
اولا يجب ان تعرف ان مصدر دوال الويندوز هوه نفسه موقع مايكروسوفت Technical documentation, API, and code examples
What Is a Window?
تسمية Windows يعود في الحقيقه الى كلمه Window او نافذه كما في الصوره
هذا النوع من النوافذ يسمى application window or main window او النافذه الرئيسيه
وهذا نوع اخر من النوافذ
نعم سوف تلاحظ ان هذا button او زر وتضغط عليه حتى يتم تنفيذ امر ما
لكن بلحقيقه هذا ايضا نافذه
كما تلاحظ يوجد مختلف انواع من النوافذ لهذا من الان عندما تبرمج للويندوز وتسمع او تقراء كلمه نافذه window
فعليك التفكير هكذا
- (تكون في جزء معين من الشاشه) Occupies a certain portion of the screen.
(تكون ظاهرة او مخفيه في اي لحظة) May or may not be visible at a given moment.
(النوافذ تعرف كيف ترسم نفسها Knows how to draw itself.
(ترد على المستخدم او النظام) Responds to events from the user or the perating system
Parent Windows and Owner Windows
في النوافذ هناك مسميات قد تكون غريبه لك عند قرائتها لاول مره لكن بعد فهم التسميات سوف تلاحظ لماذا سميت هكذا
يوجد اباء Parents واولاد Child كما تلاحظ في الصوره
النافذه الرئيسيه تسمى Parent او اب
وبقية النوافذ داخلها تسمى ابناء Child
الابناء دائما تكون داخل الاباء وتكون بموقع معين داخلها
ايضا يوجد نوافذ تابعه لنوافذ اخرى او owned
مثلا رسائل الخطاء او الاشعارات تكون تابعه لنوافذ اخرى مثل ما في الصوره في الاعلى
Window Handles
المقابض عباره عن ارقام تحملها النوافذ فمثلا نريد الوصول الى نافذه معينه وهناك مئات النوافذ فكيف سوف نعرف اي نافذه نريد وكيف نفرق بينهم
هنا جائت فكره المقابض فكل مقبض هوه عباره عن ارقام مسجله داخل النظام ولهذه المقابض متغير معين ويسمى HWND
HWND وتقراء "aitch-wind."
Screen and Window Coordinates
احداثيات الشاشعه تبداء من الزاويه اليسرى في الاعلى وتكون 0,0
ونحن نقوم بتحديد عندما نشغل البرنامج في اي مكان بلشاشه يعمل
ونفس الشيء داخل النوافذ عندما نبرمج ازرار الموقع او الاحداثيات نقوم باختيارها حسب منا نريد كما موضع بلصوره في الاسفل
WinMain: The Application Entry Point
لكل برنامج هناك نقطه ادخال يبداء منها البرنامج مثلا في السي بلس بلس تكون فونكشن Main اما في نظام ويندوز تكون اما WinMain او wWinMain
C++:
?
1
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow);
نفطة الادخال في ويندوز تاخذ 4 براميترات