易语言触摸屏源码
.版本 2
.程序集 窗口程序集1
.程序集变量 idLookup, 整数型, , "10"
.程序集变量 hOldWndProc
.程序集变量 colors, 整数型, , "10"
.程序集变量 points, POINT, , "10"
.程序集变量 white, 整数型
.子程序 __启动窗口_创建完毕
.局部变量 i
.局部变量 v
' 本源码来自三叶资源网(www.sanye.cx)
v = 位与 (位与 (GetVersion (), 65535), 15)
.如果真 (v < 6)
结束 ()
.如果真结束
RegisterTouchWindow (取窗口句柄 (), 0)
hOldWndProc = SetWindowLong (取窗口句柄 (), -4, 到整数 (&WndProc))
colors [1] = 取颜色值 (153, 255, 51)
colors [2] = 取颜色值 (153, 0, 0)
colors [3] = 取颜色值 (0, 153, 0)
colors [4] = 取颜色值 (255, 255, 0)
colors [5] = 取颜色值 (255, 51, 204)
colors [6] = 取颜色值 (0, 0, 0)
colors [7] = 取颜色值 (0, 153, 0)
colors [8] = 取颜色值 (153, 255, 255)
colors [9] = 取颜色值 (153, 153, 255)
colors [10] = 取颜色值 (0, 51, 153)
' 本源码来自三叶资源网(www.sanye.cx)
.计次循环首 (10, i) ' 这里的10是指最大支持触控的点数
points [i].x = -1
points [i].y = -1
idLookup [i] = -1
.计次循环尾 ()
white = CreateSolidBrush (#白色)
.子程序 WndProc, 整数型
.参数 hWnd, 整数型
.参数 wMsg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.局部变量 pInputs, TOUCHINPUT, , "0"
.局部变量 ptInput, POINT
.局部变量 ti, TOUCHINPUT
.局部变量 index, 整数型
.局部变量 cInputs, 整数型
.局部变量 hdc, 整数型
.局部变量 ps, PAINTSTRUCT
.局部变量 client, RECT
.局部变量 memDC, 整数型, 静态
.局部变量 hMemBmp, 整数型, 静态
.局部变量 hOldBmp, 整数型
.局部变量 hOldBrush
.局部变量 brush
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 i, 整数型
.判断开始 (wMsg = #WM_TOUCH)
cInputs = LOWORD (wParam)
重定义数组 (pInputs, 假, cInputs)
.如果真 (GetTouchInputInfo (lParam, cInputs, pInputs, 40))
.计次循环首 (cInputs, i)
ti = pInputs [i]
index = GetContactIndex (ti.dwID)
.如果真 (ti.dwID ≠ 0 且 index > 0 且 index < 10)
ptInput.x = ti.x ÷ 100
ptInput.y = ti.y ÷ 100
ScreenToClient (hWnd, ptInput)
.如果 (位与 (ti.dwFlags, 52) = 52)
points [index].x = -1
points [index].y = -1
.否则
points [index].x = ptInput.x
points [index].y = ptInput.y
.如果结束
' 本源码来自三叶资源网(www.sanye.cx)
.如果真结束
.计次循环尾 ()
.如果真结束
CloseTouchInputHandle (lParam)
重定义数组 (pInputs, 假, 0)
hdc = GetDC (hWnd)
GetClientRect (hWnd, client)
.如果真 (memDC = 0)
memDC = CreateCompatibleDC (hdc)
.如果真结束
hMemBmp = CreateCompatibleBitmap (hdc, client.Right, client.Bottom)
hOldBmp = SelectObject (memDC, hMemBmp)
FillRect (memDC, client, white)
.计次循环首 (10, i)
brush = CreateSolidBrush (colors [i])
hOldBrush = SelectObject (memDC, brush)
x = points [i].x
y = points [i].y
.如果真 (x > 0 且 y > 0)
Ellipse (memDC, x - 50, y - 50, x + 50, y + 50)
.如果真结束
' 本源码来自三叶资源网(www.sanye.cx)
SelectObject (memDC, hOldBrush)
DeleteObject (brush)
.计次循环尾 ()
BitBlt (hdc, 0, 0, client.Right, client.Bottom, memDC, 0, 0, 13369376)
' 本源码来自三叶资源网(www.sanye.cx)
ReleaseDC (hWnd, hdc)
返回 (0)
.判断 (wMsg = #WM_PAINT)
hdc = BeginPaint (hWnd, ps)
GetClientRect (hWnd, client)
.如果真 (memDC = 0)
memDC = CreateCompatibleDC (hdc)
.如果真结束
hMemBmp = CreateCompatibleBitmap (hdc, client.Right, client.Bottom)
hOldBmp = SelectObject (memDC, hMemBmp)
FillRect (memDC, client, CreateSolidBrush (取颜色值 (255, 255, 255)))
.计次循环首 (10, i)
SelectObject (memDC, CreateSolidBrush (colors [i]))
x = points [i].x
y = points [i].y
.如果真 (x > 0 且 y > 0)
Ellipse (memDC, x - 50, y - 50, x + 50, y + 50)
.如果真结束
' 本源码来自三叶资源网(www.sanye.cx)
.计次循环尾 ()
BitBlt (hdc, 0, 0, client.Right, client.Bottom, memDC, 0, 0, 13369376)
EndPaint (hWnd, ps)
返回 (0)
.默认
.判断结束
返回 (CallWindowProc (hOldWndProc, hWnd, wMsg, wParam, lParam))
.子程序 __启动窗口_将被销毁
UnregisterTouchWindow (取窗口句柄 ())
.子程序 LOWORD, 整数型
.参数 整数
返回 (位与 (整数, 65535))
.子程序 GetContactIndex, 整数型
.参数 dwID, 整数型
.局部变量 i, 整数型
.计次循环首 (10, i)
.如果 (idLookup [i] = -1)
idLookup [i] = dwID
返回 (i)
.否则
.如果真 (idLookup [i] = dwID)
返回 (i)
.如果真结束
' 本源码来自三叶资源网(www.sanye.cx)
.如果结束
.计次循环尾 ()
返回 (-1)
易语言触摸屏软件
易语言接受触摸板
易语言写触摸屏
触摸屏查询软件源代码