给窗口画边框
这是我们已经发布的产品的需求
我们的产品是个沙盒程序 凡是运行在沙盒里的程序 如果有弹出窗口 就给弹出窗口四周画个绿边 当然了 也不用太严谨,比如它是异型的 我们仍然画成方的就可以了。
我们现在给运行在沙盒里的程序都注入了一个xxx.dll,那么画绿框的工作 自然是在这个xxx.dll里实现了。
#1 最开始采用的是勾住弹出窗口的WM_PAINT消息 然后找到窗口dc 然后用GDI描边。 如果没有win7的areo风格的话 一切正常,可aero风格下不管用。
#2 也就是现在使用的方法,额外创建一个镂空的弹出窗口套住原程序的弹出窗口 然后响应一些事件 随动 随改变大小等等
虽然#2基本解决问题 但总是不理想啊 由于不能设定为父子关系(子窗口没法镂空) 有时候会出现zorder的问题,还有其它的一些不如意的地方。
现在看看有哪位大师 大姐 有高招啊 指点1,2