منتديات تراتيل شاعر

منتديات تراتيل شاعر (http://tra-sh.com/vb/index.php)
-   تطوير المواقع والمنتديات ▪● (http://tra-sh.com/vb/forumdisplay.php?f=44)
-   -   برمجة في بيئة الويندوز - Intro to Win32 programming in C++ (http://tra-sh.com/vb/showthread.php?t=135353)

رحيل المشاعر 06-20-2019 10:33 PM

برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 







http://img.dev-point.com/imgcache/2013/10/88872.gif

اللهم لك الحمد حمدًا طيّبًا كثيرًا مُباركًا فيه؛
ملء السّماوات وملء الأرض وما بينهما، وملء ما شيئت من شيء بعدهما.

*. أرحب بكم إخواني وأخواتي أعضاء منتدى نقطة التطوير .*


*. أتمنى أن تكونوا في تمام الصحة والعافية.*






الدرس الثاني من البرمجة في بيئة الويندوز - Intro to Win32 programming in C++

---------------------------------------------------------------------------------------------------------------
في الدرس السابق تعلمنا ما معنى 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 براميترات


  • hInstance وهيه مقبض خاص بـ instance وهذا النوع يكون مطلوب في بعض النوافذ حتى يحدد اي ايقونه يحمل مع بداء البرنامج
  • hPrevInstance في وقتنا الحالي لا معنى له لانه كان مطلوب في نظام 16Bit اما اليوم فيكون مصفر
  • pCmdLine تحمل قيم CMD وتكون Unicode string
  • nCmdShow هوه علم او Flag يقوم باخبار البرنامج في حال يجب ان يعمل صغير او كبير او طبيعي minimized, maximized, or shown normally
ايضا كما تلاحظ يوجد نوعين من نقاط الادخال WinMain او wWinMain

كما ذكرت في الدرس السابق w تكون تابعه لنظام Unicode وهذا النظام يدعم جميع الاحرف العالميه


هذا كود لبرنامج فارغ في بيئه ويندوز

C++:
?
1
2
3
4
5
INT WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR lpCmdLine, INT nCmdShow)
{
return 0;
}






http://img.dev-point.com/imgcache/2013/10/88872.gif






الخل الوفي 06-21-2019 12:58 AM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
انتقاااء راائع ومميز
الله يسعد قلبك
يعطيك العافية

صاحبة السمو 06-21-2019 01:00 AM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
طـرح رآئــع
سلمت آناملك ع الإنتقاء
لاحرمنا الله من عبير تواجدك وجديدك
دمت بسعادهـ بــحـجم السماء
لقلبك طوق آليآسمين ,,~
https://vb.almstba.com/imgcache/alms...721192_640.gif

a7ases 06-22-2019 01:36 AM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
سلمت يدآك..على جميل طرحك وحسن ذآئقتك
يعطيك ربي ألف عافيه..
بإنتظار جديدك بكل شوق.
لك مني جزيل الشكر والتقدير لاعدمناك...

هيبة مشاعر 06-22-2019 03:25 PM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
http://www.tra-sh.com/up/uploads/156120486851.gif

الجنرال 06-25-2019 06:34 PM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
طرح رائع
يعطيك العافيه
على هذا الطرح المميز
وسلمت اناملك المتألقه
تقديري لك

الوافي 06-25-2019 08:11 PM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
طرح رآقي گ روحـگ
لآعدمنا جمآل ذآئقتگ
وبآنتظار جديد آبداعكگ دائمآ
ودي لگ

ام ساره 06-28-2019 03:32 AM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
الله يعطيك العافيه

طرح ممميز
تحياتي

رحيل المشاعر 06-29-2019 10:40 PM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
احساس
يعطيك العافيه وتسلم يدينك
لروحك الجوري
ودي

رحيل المشاعر 06-29-2019 10:40 PM

رد: برمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
ام
يعطيك العافيه وتسلم يدينك
لروحك الجوري
ودي


الساعة الآن 12:09 PM

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. TranZ By Almuhajir
HêĽм √ 3.2 OPS BY: ! ωαнαм ! © 2010
new notificatio by 9adq_ala7sas
User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Security team

mamnoa 4.0 by DAHOM