一个主对话框,响应一定的菜单消息,就弹出一个子对话框。。
首先这个子对话框要是全透明,不能遮挡后面主对话框的图案。 其次这个子对话框上面也有一些简单的有颜色的几何图案线条,在子对话框非线条区域全透明的情况下,这些线条需要清晰可见不透明。 然后这个子对话框上全部范围内需要响应鼠标的各种操作,比如拖动,拉伸,左右键弹出菜单等。。 因为我用SetLayeredWindowAttributes实现全透明的话,有两种情况,一种是上面的线条也跟着全透明了,子对话框相当于全部消失。。
还一种就是线条清晰可见,非线条区域实现了全透明但是全透明区域也就无法响应当前对子对话框的鼠标响应除非在狭窄的线条区域内,仍可以响应鼠标消息但操作起来就很不方便。。 所以请问各位好心大牛如何制作一个有简单背景线条,可全范围响应鼠标消息的全透明对话框呢???
首先这个子对话框要是全透明,不能遮挡后面主对话框的图案。 其次这个子对话框上面也有一些简单的有颜色的几何图案线条,在子对话框非线条区域全透明的情况下,这些线条需要清晰可见不透明。 然后这个子对话框上全部范围内需要响应鼠标的各种操作,比如拖动,拉伸,左右键弹出菜单等。。 因为我用SetLayeredWindowAttributes实现全透明的话,有两种情况,一种是上面的线条也跟着全透明了,子对话框相当于全部消失。。
还一种就是线条清晰可见,非线条区域实现了全透明但是全透明区域也就无法响应当前对子对话框的鼠标响应除非在狭窄的线条区域内,仍可以响应鼠标消息但操作起来就很不方便。。 所以请问各位好心大牛如何制作一个有简单背景线条,可全范围响应鼠标消息的全透明对话框呢???
解决方案 »
- PRJ0050: 未能注册输出。请确保您有修改注册表的相应权限。求高手帮助
- 用VC2005调试程序,提示:“Cannot open include file: 'd3d8.h': No such file or directory”
- 为什么在csdn下载的canny算子里的TraceEdge递归函数在vs2005下堆栈溢出
- 將VC程序置入系統服務
- TChart清空曲线问题
- 这种叫做线程插入吗?
- 请教一个新手的问题!~
- 救<<COM技术内幕>>配套光盘源程序
- 会用IJG的朋友过来帮帮忙啊
- 我有一CPOINT数组,请问如何将其存成.dat或.txt文件,最好有代码,因为我太菜??
- 在对话框类添加一个公有的CString m_h;运行没有错误 但是关闭程序后弹出一个框
- COM如何向javascript传递数组
1、子对话框本身全透明
2、带颜色的线条部分是属于子对话框的控件(类似button之类的子区域)、然后根据你的线条设定子区域的有效范围(setwindowrgn、参照绘制不规则区域的方法)ps:这种方法首先你的彩色线条是不能变化的太快的、不然随时setwindowrgn会让你的程序很慢...
LWA_ALPHA = 0x2;
LWA_COLORKEY=0x1
其中dwFlags有LWA_ALPHA和LWA_COLORKEY
LWA_ALPHA被设置的话,通过bAlpha决定透明度.
LWA_COLORKEY被设置的话,则指定被透明掉的颜色为crKey,其他颜色则正常显示.
ALPHA通道和COLORKEY共用,把不想要的部分全画上一种颜色(COLORKEY)貌似这个才是正解
我现在就是用的这个技术啊。。LWA_ALPHA与LWA_COLORKEY搭配取值我前面说了嘛,做成全透明效果,有两种情况,一种是线条也跟着透明了,就是什么都看不见还一种是线条清晰,但是全透明区域却无法响应鼠标消息了。
对啊,这样很简单啊。Hook所有的鼠标消息,然后判断鼠标位置,如果在透明对话框范围内的话,就转发给透明对话框,不在透明对话框范围内就放行。
请问楼主,使用LWA_COLORKEY时你使用的是哪种颜色使对话框背景透明的?