讲一下实现的原理和我研究的路上碰到的阻碍:
想要实现这个功能:
问1:首先要获取鼠标双击桌面的消息。
问2:判断是双击的桌面图标还是双击的桌面空白区域。
答1:第一个问题是通过hook全局鼠标来实现判断,hook了全局鼠标后,通过判断鼠标当前指向的窗口句柄来判断鼠标是否在桌面双击。
答2:由于桌面是一个超级列表框控件,通过精易模块里的外部超级列表框类,绑定桌面的超级列表框句柄,通过取鼠标指针所在的索引来判断当前鼠标是在图标上,还是在空白区域。
然后通过隐藏和显示SyListView32这个桌面句柄就能达到双击桌面隐藏和显示桌面图标的效果。
接下来讲下遇到的问题:
本来是想直接获取桌面句柄的鼠标移动,但是不会hook桌面句柄或者是截获桌面句柄的消息,所以只能通过hook全局的鼠标消息来实现,如果有谁懂直接获取桌面的双击消息,可以发个例子出来。
通过外部超级列表框类,可以获取鼠标放在哪个桌面图标上,还有通过外部超级列表框.取表项位置 (, )取出桌面图标的坐标,但是通过外部超级列表框.取标题 (, , )这个命令,无法取出桌面图标的名称,如果有谁知道怎么通过外部超级列表框