下你所需,载你所想!
汇集开发技术源码资料

最全面的鼠标消息源码内有详解

:16.131KB :1 :2019-12-22 10:19:05

部分简介

.判断 (uMsg = #WM_NCMOUSEMOVE) ' 鼠标移动
str = MouseMessage (hwnd, wParam, lParam, 假)
DrawText (hwnd, 8, str, wParam, lParam, 假)
str = 取空白文本 (512)
GetWindowTextA (hwnd, str, 512)
.如果真 (str = “鼠标离开客户区” 或 str = “鼠标离开客户区,进入非客户区”)
SetWindowTextA (hwnd, “鼠标离开客户区,进入非客户区”)
返回 (0)
.如果真结束
SetWindowTextA (hwnd, “鼠标进入窗口”)
.判断 (uMsg = #WM_NCLBUTTONDOWN) ' 左键按下
DrawText (hwnd, 9, “左键消息(非客户区) : 鼠标按下 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCMBUTTONDOWN) ' 中键按下
DrawText (hwnd, 10, “中键消息(非客户区) : 鼠标按下 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCRBUTTONDOWN) ' 右键按下
DrawText (hwnd, 11, “右键消息(非客户区) : 鼠标按下 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCLBUTTONUP) ' 左键放开
DrawText (hwnd, 9, “左键消息(非客户区) : 鼠标放开 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCMBUTTONUP) ' 中键放开
DrawText (hwnd, 10, “中键消息(非客户区) : 鼠标放开 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCRBUTTONUP) ' 右键放开
DrawText (hwnd, 11, “右键消息(非客户区) : 鼠标放开 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCLBUTTONDBLCLK) ' 左键双击
DrawText (hwnd, 9, “左键消息(非客户区) : 鼠标双击 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCMBUTTONDBLCLK) ' 中键双击
DrawText (hwnd, 10, “中键消息(非客户区) : 鼠标双击 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_NCRBUTTONDBLCLK) ' 右键双击
DrawText (hwnd, 11, “右键消息(非客户区) : 鼠标双击 ”, wParam, lParam, 假)
.判断 (uMsg = #WM_PAINT) ' 重绘窗口
BeginPaint (hwnd, ps) ' 这个只能在收到 WM_PAINT 消息下使用
DrawText (hwnd, 6, “------------以上为客户区鼠标消息,以下为非客户区鼠标消息-----------------------”, 0, 0, 真)
BitBlt (ps.hdc, 0, 0, m_Width, m_Height, m_hDCMem, 0, 0, #SRCCOPY) ' 把内存DC里的东西拷贝到窗口DC上
EndPaint (hwnd, ps) ' 这个和BeginPaint一定要成对使用,有BeginPaint就一定要有EndPaint
.判断 (uMsg = #WM_CREATE) ' 窗口创建完毕
hdc = GetDC (hwnd)
m_hDCMem = CreateCompatibleDC (hdc) ' 创建一个内存dc
nWidth = GetSystemMetrics (#SM_CXSCREEN) ' 取屏幕宽度
nHeight = GetSystemMetrics (#SM_CYSCREEN) ' 取屏幕高度
' 窗口尺寸改变后位图大小也应该要改变,我这里懒得去处理,直接创建一个跟窗口大小一样的位图,这样窗口大小改变后也不需要修改位图大小
m_hBitmap = CreateCompatibleBitmap (m_hDCMem, nWidth, nHeight) ' 窗口兼容的位图
m_hBitmapOld = SelectObject (m_hDCMem, m_hBitmap) ' 把创建的位图选入到dc
SelectObject (m_hDCMem, GetStockObject (#DEFAULT_GUI_FONT)) ' 设置绘画的字体
SetBkMode (m_hDCMem, #TRANSPARENT) ' 设置画文本的背景为透明,可以不用,背景默认是白色,我们这里的背景就是白色,没有影响
FillRect (m_hDCMem, MakeRect (0, 0, nWidth, nHeight), GetStockObject (#WHITE_BRUSH)) ' 用白色画刷填充整个画布
ReleaseDC (hwnd, hdc) ' 别忘了擦屁股
.判断 (uMsg = #WM_SIZE)
m_Width = LOWORD (lParam) ' 用变量保存窗口的宽度和高度,低位的宽度,高位是高度
m_Height = HIWORD (lParam) ' 高度
.判断 (uMsg = #WM_ERASEBKGND)
返回 (0)

最全面的鼠标消息源码内有详解

热门推荐

相关文章