|
本帖最后由 UltrSeven 于 2022-11-10 15:02 编辑
上一个帖子:https://bbs.125.la/forum.php?mod=viewthread&tid=14749752
上一次让项目部修复了气泡提示反复弹出的bug,虽然修了,但是只修了1个子程序,实际上还有4.5个子程序没有修改导致出现问题,这里附上之前改好的模块源码以及没有上次修复没有改动的代码
原子程序 气泡提示
|
气泡提示 | 逻辑型 | | |
提示标题 | 文本型 | | | | 提示内容 | 文本型 | | | | 提示图标 | 整数型 | | | | 显示时间 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | m_szInfo | 文本型 | | | m_szInfoTitle | 文本型 | | |
集_通知结构.dwInfoFlags = 提示图标 m_szInfoTitle = 选择 (取文本长度 (提示标题 ) ≤ 64, 提示标题, 取文本左边 (提示标题, 64 )) m_szInfo = 选择 (取文本长度 (提示内容 ) < 256, 提示内容, 取文本左边 (提示内容, 256 )) lstrcpy_bytes (集_通知结构.szInfoTitle, m_szInfoTitle )lstrcpy_bytes (集_通知结构.szInfo, m_szInfo )判断 (显示时间 = 0 )集_通知结构.uTimeoutAndVersion = 3000 集_通知结构.uTimeoutAndVersion = 显示时间 返回 (Shell_NotifyIcon ( #NIM_MODIFY, 集_通知结构))
修改后子程序 气泡提示
|
气泡提示 | 逻辑型 | | |
提示标题 | 文本型 | | | | 提示内容 | 文本型 | | | | 提示图标 | 整数型 | | | | 显示时间 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | m_szInfo | 文本型 | | | m_szInfoTitle | 文本型 | | |
集_通知结构.dwInfoFlags = 提示图标 m_szInfoTitle = 选择 (取文本长度 (提示标题 ) ≤ 64, 提示标题, 取文本左边 (提示标题, 64 )) m_szInfo = 选择 (取文本长度 (提示内容 ) < 256, 提示内容, 取文本左边 (提示内容, 256 )) lstrcpy_bytes (集_通知结构.szInfoTitle, m_szInfoTitle )lstrcpy_bytes (集_通知结构.szInfo, m_szInfo )判断 (显示时间 = 0 )集_通知结构.uTimeoutAndVersion = 3000 集_通知结构.uTimeoutAndVersion = 显示时间 集_通知结构.uFlags = 位或 ( #NIF_ICON, #NIF_TIP, #NIF_INFO, #NIF_MESSAGE )返回 (Shell_NotifyIcon ( #NIM_MODIFY, 集_通知结构 ))
原子程序 置图标数据
m_szTip = 选择 (取文本长度 (提示信息 ) < 128, 提示信息, 取文本左边 (提示信息, 128 )) lstrcpy_bytes (集_通知结构.szTip, m_szTip )返回 (Shell_NotifyIcon ( #NIM_MODIFY, 集_通知结构 ))
修改后子程序 置图标数据
m_szTip = 选择 (取文本长度 (提示信息 ) < 128, 提示信息, 取文本左边 (提示信息, 128 )) lstrcpy_bytes (集_通知结构.szTip, m_szTip )集_通知结构.uFlags = 位或 ( #NIF_ICON, #NIF_TIP, #NIF_MESSAGE )返回 (Shell_NotifyIcon ( #NIM_MODIFY, 集_通知结构 ))
原子程序 置图标数据
hIcon = 取图标句柄 (图标数据, 0 )如果真 (hIcon = 0 )返回 (假)集_通知结构.uFlags = 位或 ( #NIF_ICON, #NIF_TIP, #NIF_INFO, #NIF_MESSAGE )集_通知结构.hIcon = hIcon 返回 (Shell_NotifyIcon ( #NIM_MODIFY, 集_通知结构 ))
修改后子程序 置图标数据
hIcon = 取图标句柄 (图标数据, 0 )如果真 (hIcon = 0 )返回 (假)集_通知结构.hIcon = hIcon集_通知结构.uFlags = 位或 ( #NIF_ICON, #NIF_TIP, #NIF_MESSAGE )返回 (Shell_NotifyIcon ( #NIM_MODIFY, 集_通知结构 ))
原子程序 挂接事件
如果真 (IsWindow (集_窗口句柄 ) = 1 )集_回调指针 = SetWindowLongA (集_窗口句柄, -4, 到整数 (&托盘消息回调 )) SetPropA (集_窗口句柄, “WinProc”, 集_回调指针 )SetPropA (集_窗口句柄, “CallbackMessage”, 集_通知结构.uCallbackMessage )SetPropA (集_窗口句柄, “TaskbarCreatedMessage”, 集_重建句柄 )如果真 (是否为空 (执行事件 ) = 假)SetPropA (集_窗口句柄, “Exec Event”, 到整数 (执行事件 )) 修改后子程序 挂接事件 如果真 (IsWindow (集_窗口句柄 ) = 1 )集_回调指针 = SetWindowLongA (集_窗口句柄, -4, 到整数 (&托盘消息回调 )) SetPropA (集_窗口句柄, “WinProc”, 集_回调指针 )SetPropA (集_窗口句柄, “TaskbarCallbackMessage”, 集_通知结构.uCallbackMessage )SetPropA (集_窗口句柄, “TaskbarCreatedMessage”, 集_重建句柄 )如果真 (是否为空 (执行事件 ) = 假)SetPropA (集_窗口句柄, “Exec Event”, 到整数 (执行事件 )) 返回 ()
以及修改后的 托盘消息回调 子程序
|
托盘消息回调 | 整数型 | | |
hwnd | | | | | uMsg | | | | | wParam | | | | | lParam | | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | pointer | | | | Message | | | | TaskbarCreated | | | | Event | | | |
pointer = GetPropA (hwnd, “WinProc”)Message = GetPropA (hwnd, “TaskbarCallbackMessage”)TaskbarCreated = GetPropA (hwnd, “TaskbarCreatedMessage”)Event = GetPropA (hwnd, “Exec Event”)判断 (uMsg = Message )如果真 (Event ≠ 0 )程序_Call (Event, lParam )返回 (0 )判断 (uMsg = TaskbarCreated )如果真 (Event ≠ 0 )程序_Call (Event, 1120 )返回 (0 )判断 (uMsg = 2 )如果真 (Event ≠ 0 )程序_Call (Event, 1130 )返回 (CallWindowProcA (pointer, hwnd, uMsg, wParam, lParam))
|
评分
-
查看全部评分
|