الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بعض دوال API ؟؟

مغلق
بدأه ferasferas في 22 يناير 2005 · 5 رد · 638 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إلى الأخوة الكرام بعد التحية، والمعايدة، والتهنئة بالعيد أعاده الله على الأمة الأسلامية بالخير والنصر والبركة في الوقت والعمل إن شاء الله، أما بعد:

عند سؤال، أريد الاستفسار عن الدوال التالية في ال API ، ياريت أحد يخبرني لماذا، وما هو عمل هذه الدوال، أي لماذا تستخدم؟؟:

الدوال:

-------

1. CreateRectRgn

2. CreateRoundRectRgn

3. CreateEllipticRgn

4. CombineRgn

5. DeleteObject

6. SetWindowRgn

7. SendMessage

8. ReleaseCapture

9. ShellExecute

وشكراً جزيلاً مقدماً.

#2

1 : CreateRectRgn

Public Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Public Declare Function CreateRectRgnIndirect Lib "gdi32" Alias "CreateRectRgnIndirect" (lpRect As RECT) As Long

------------------------------------------------------------------------------------------

2: CreateRoundRectRgn

Public Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

-----------------------------------------------------------------------------------------------

3: CreateEllipticRgn

Public Declare Function CreateEllipticRgnIndirect Lib "gdi32" Alias "CreateEllipticRgnIndirect" (lpRect As Rect) As Long

Public Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

------------------------------------------------------------------------------------------------

4 : CombineRgn

Public Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long

---------------------------------------------------------------------------------------------------

5: DeleteObject

Public Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long

------------------------------------------------------------------------------------------------

6 : SetWindowRgn

Public Declare Function SetWindowRgn Lib "user32" Alias "SetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

-------------------------------------------------------------------------------------------------

7 : SendMessage

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long

Public Declare Function SendMessageCallback Lib "user32" Alias "SendMessageCallbackA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal lpResultCallBack As Long, ByVal dwData As Long) As Long

Public Declare Function InSendMessage Lib "user32" Alias "InSendMessage" () As Long

Public Declare Function mmioSendMessage Lib "winmm.dll" Alias "mmioSendMessage" (ByVal hmmio As Long, ByVal uMsg As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long

----------------------------------------------------------------------------------------------

8: ReleaseCapture

Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long

Public Declare Function joyReleaseCapture Lib "winmm.dll" Alias "joyReleaseCapture" (ByVal id As Long) As Long

-------------------------------------------------------------------------------------------------

9: ShellExecute

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

---------------------------------------------------------------------------------------------------

المرجع :

APIViewer.gif

#3

أخي العزيز ....

لقد تفضل الأخ ELKING بوضع التصريحات اللازمة لهذه الدوال و يبقى أن تعرف عمل كل دالة و ماهي الممررات اللازمة لها و كيف نقوم بتمريرها و ماهي القيم الراجعة منها .

وبشكل عام فإن هذه الدوال تستخدم لتحديد شكل الفورم , و إرسال رسائل للنوافذ , و أغراض أخرى عديدة , ومرجعك الأفضل للتعامل مع هذه الدوال هو MSDN مكتبة ميكروسوفت ,,,

وكذا جميع دوال API

و هناك برنامج أعتقد اسمه All APIs يوفر شرحاً مفصلاً لكل دالة و مثال عليها و شرح جميع ممرراتها , سأحاول أن أرفقه إلى هذا المنتدى في مشاركتي القادمة إم شاء الله , إذا لم يسبقني أحد الأعضاء الكرام .

اللهم انت ربي , لا إله إلا أنت خلقتني و أنا عبدك و أنا على عهدك و وعدك ماستطعت , أبوء لك بنعمتك علي و أبوء بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت

آخر الدروس و المقالات:

Oracle Data Provider (ODP.NET)

#4

CreateRectRgn

ترجع القيمة المطلقة لآي عدد وترجعه من نفس نوع البيانات المعطى للدالة والمقصود بالقيمة المطلقة هي قيمة العدد بدون إشارة فالقيمة المطلقة ل (-13) مثلا هي (13) وهكذا.

------------------------------------------------------------------------------------------------

والباقي سوف اسردها في المشاركة القادمة

#5

وهذا مثال لإحدى الدوال التي طلبتها وهي :

HRGN CreateRoundRectRgn

و التي تستخدم لإنشاء مستطيل مدور الأركان round rect

في البداية عليك التصريح عن الدالة في منطقة التصريحات

مستخدماً التصريح المرفق من الأخ ELKING وهو كالتالي

Public Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

ومن ثم استدعائها و تمرير القيم المطلوبة لها حيث أن لها كما تلاحظ أخي العزيز ستة ممررات من النوع long في فيجوال بيسك ومن النوع int في سي ++ وهي

بالترتيبnLeftRect أو X1 لتحديد المحور السيني للنقطة العلوية اليسرى

nTopRect أو Y1 لتحديد المحور الصادي لنفس النقطة

nRightRect أو X2 لتحديد المحور السيني للنقطة اليمنى السفلية

nBottomRect أو Y2 لتحديد المحور الصادي للنقطة السابقة

nWidthEllipse أو X3 لتحديد عرض المستطيل

nHeightEllipse أو Y3 لتحديد ارتفاع المستطيل

و تعود الدالة بقيمة تمثل المقبض Handle في حال نجحت , و بالقيمة الفارغة null في حال لم تنجح .

اللهم انت ربي , لا إله إلا أنت خلقتني و أنا عبدك و أنا على عهدك و وعدك ماستطعت , أبوء لك بنعمتك علي و أبوء بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت

آخر الدروس و المقالات:

Oracle Data Provider (ODP.NET)

#6

عفواً يجب الإشارة إلى أن الباراميترات الأخيرة لدالة CreateRoundRectRgn وهي x3 و Y3 يستخدمان لتحديد مدى تدوير المستطيل أي عرض و ارتفاع التدويرة في ركن المستطيل و ليس المستطيل ذاته , و الدالة CreateRectRgn تقوم بنفس العمل فيما عدا أنها تنشيء مستطيل كامل أي غير مدور الأركان

===========================================

عفواً أخي ELKING لم أفهم ما تقصد

اقتباس
CreateRectRgn

ترجع القيمة المطلقة لآي عدد وترجعه من نفس نوع البيانات المعطى للدالة والمقصود بالقيمة المطلقة هي قيمة العدد بدون إشارة فالقيمة المطلقة ل (-13) مثلا هي (13) وهكذا 

هذا ما تقوم به الدالة ABS() وهي دالة القيمة المطلقة فيما أعتقد ,

أما الدالة السابقة فهي لإنشاء مستطيل عادي .

===========================================

اللهم انت ربي , لا إله إلا أنت خلقتني و أنا عبدك و أنا على عهدك و وعدك ماستطعت , أبوء لك بنعمتك علي و أبوء بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت

آخر الدروس و المقالات:

Oracle Data Provider (ODP.NET)

هذا الموضوع مغلق.

مواضيع مشابهة