منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
معرفة لون النقطة التي يمر بها الماوس حالياً - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111)
+---- قسم : مكتبة أكواد الفيجوال بيسك 6 (http://vb4arb.com/vb/forumdisplay.php?fid=116)
+---- الموضوع : معرفة لون النقطة التي يمر بها الماوس حالياً (/showthread.php?tid=5921)



معرفة لون النقطة التي يمر بها الماوس حالياً - RaggiTech - 17-10-12

كاتب الموضوع : AhmedEssawy

يعتمد الكود على GetCursorPos التي شرحناها في كود سابق والتي تعيد لنا مكان الماوس لمعرفة الاحداثيات التي يمر بها الماوس ، ومن ثم نستخدم دالة API المسماه GetPixel من مكتبة gdi32 والتي نعطيها نقطة من الشاشة لتعطينا اللون الخاص بها .



كود :
Option Explicit
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
وهذا الكود في الزر المطلوب ، يفضل Timer ليتم تحديثه لحظياً :


كود :
Dim tPOS As POINTAPI
Dim sTmp As String
Dim lColor As Long
Dim lDC As Long
lDC = GetWindowDC(0)
Call GetCursorPos(tPOS)
lColor = GetPixel(lDC, tPOS.x, tPOS.y)
Label2.BackColor = lColor
End Sub
يمكنك لاحقاً استخدام اللون وعرضه في picture box مثلاً .