通过创建透明窗口实现外部绘制方框透视:
这里我们拿易语言做示例:
首先我们需要创建一个windows窗口,这里直接使用易语言创建就行
.版本 2
' 自己创建一个窗口并载入(我们将用这个窗口作为透明的绘制窗口)
载入 (窗口1, , 假)
' 读取被创建的窗口的句柄
窗口句柄 = 窗口1.取窗口句柄 ()
' 接下来使用SetWindowLongA设置窗口样式,GetWindowLong的意思便是获取窗口原来的样式,整句话的意思就是窗口原有的样式基础上再添加一些样式!!创建窗口的详细样式大家自己百度一下就知道了
SetWindowLongA (窗口句柄, -16, 位与 (GetWindowLong (窗口句柄, -20), 位取反 (位或 (256, 1))))
' 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。nCmdShow=1。
ShowWindow (窗口句柄, 1)
' 更新客户区
UpdateWindow (窗口句柄)
' 设置窗口的扩展样式
SetWindowLongA (窗口句柄, -20, 589992)
' 将窗口设置为透明,参数1为需要透明的窗口的句柄;参数2则是需要被透明掉的颜色,0为黑色;参数3表示透明度,0-255,0表示完全透明,255为完全不透明,这里是完全透明;参数4则是透明方式
SetLayeredWindowAttributes (窗口句柄, 0, 0, 1)
一些游戏为了防止创建第三方绘制窗口,会强制将自己的游戏窗口置顶,这样你创建的透明绘制窗口就无法绘制到游戏窗口的上层,解决办法就是使用SetWindowPos将游戏窗口取消强制置顶!
纯源码例子已经打包,看懂了此例子也就不用再去使用别人的D3D绘制模块了,自己就可以编写纯源码D3D绘制了!