كيفية إنشاء نافذة ويندوز

جدول المحتويات:

كيفية إنشاء نافذة ويندوز
كيفية إنشاء نافذة ويندوز

فيديو: كيفية إنشاء نافذة ويندوز

فيديو: كيفية إنشاء نافذة ويندوز
فيديو: عمل سطح مكتب اضافي في ويندوز 10 بدون برامج 2024, شهر نوفمبر
Anonim

تستند مبادئ عمل واجهة المستخدم لأنظمة تشغيل عائلة Windows على مفهوم النافذة. سطح المكتب وشريط المهام والقوائم ومربعات الحوار والأزرار والقوائم كلها نوافذ. لذلك ، في الواقع ، لعرض أي عنصر واجهة ، تحتاج إلى إنشاء نافذة windows.

كيفية إنشاء نافذة ويندوز
كيفية إنشاء نافذة ويندوز

ضروري

  • - مترجم
  • - منصة Windows SDK.

تعليمات

الخطوة 1

قم بتسجيل فئة النافذة المراد إنشاؤها ، إذا لزم الأمر. قم بإجراء استدعاء لوظائف API RegisterClass و RegisterClassEx أو استخدم الوظيفة المناسبة للإطار المستخدم.

تقبل الدالتان RegisterClass و RegisterClassEx مؤشرات لهياكل من النوع WNDCLASS و WNDCLASSEX ، على التوالي ، كمعاملهما الوحيد. يمكن استخدام قيمة الإرجاع من النوع ATOM بدلاً من اسم الفئة عند إنشاء نافذة. إذا فشل استدعاء الوظيفة ، فإن القيمة المعادة هي 0.

إنشاء بنية من النوع WNDCLASS أو WNDCLASSEX. املأ جميع الحقول اللازمة. على وجه الخصوص ، يجب وضع القيم الصحيحة في:

- cbSize - حجم الهيكل بالبايت ؛

- النمط - مجموعة من الأنماط لفئة النافذة ؛

- lpfnWndProc - مؤشر إلى إجراء النافذة ؛

- hInstance هو مقبض الوحدة النمطية التي يتم فيها تسجيل فئة النافذة ؛

- lpszClassName هو الاسم الرمزي للفئة.

يمكن كتابة باقي الحقول بقيم NULL. قم بإجراء مكالمة وظيفية لتسجيل فئة النافذة. تحقق من النتيجة التي تم إرجاعها.

الخطوة 2

حدد فئة نافذة موجودة إذا لزم الأمر. يجب أن تعرف اسم الفئة الرمزي (الاسم الذي تم تمريره عبر مؤشر lpszClassName عند تسجيله) أو قيمة ATOM المقابلة. يمكن أن تكون الفئة محلية على مستوى التطبيق ، أو عالمية على مستوى التطبيق (مسجلة بعلامة CS_GLOBALCLASS) ، أو فئة النظام. النوع الأخير يشمل فئات النوافذ التي تحمل الأسماء: Button ، ComboBox ، Edit ، ListBox ، MDIClient ، ScrollBar ، Static. يتم تسجيل فئات مثل RichEdit20W أو SysListView32 عند تحميل المكتبات المقابلة.

الخطوه 3

قم بإنشاء نافذة Windows. استخدم وظائف API CreateWindow أو CreateWindowEx أو أساليب المجمّع المناسبة لكائنات فئة إطار العمل أو المكتبة التي تستخدمها. يبدو النموذج الأولي لوظيفة CreateWindowEx كما يلي:

HWND CreateWindowEx (DWORD dwExStyle ،

LPCTSTR lpClassName ،

LPCTSTR lpWindowName ،

DWORD dwStyle ،

int x ،

int y ،

int nWidth

ارتفاع n

HWND hWndParent ،

HMENU hMenu ،

HINSTANCE hInstance ،

LPVOID lpParam);

تختلف الدالة CreateWindow عن CreateWindowEx فقط في حالة عدم وجود المعلمة dwExStyle.

استدعاء CreateWindow أو CreateWindowEx. قم بتمرير المعلمة lpClassName الاسم أو قيمة ATOM لفئة النافذة التي حددتها في الخطوة الأولى أو الثانية. يمكن أن تكون المعلمات x و y و nWidth و nHeight هي إحداثيات وأحجام النافذة التي يتم إنشاؤها. يتم تمرير مقبض النافذة الأصل (إن وجد) عبر hWndParent.

حفظ وتحليل القيمة التي تم إرجاعها بواسطة CreateWindow أو CreateWindowEx. عند النجاح ، سيعيدون المقبض إلى النافذة الجديدة ؛ عند الفشل ، NULL.

موصى به: