我在做一个二维图形绘图程序。是一个单文档程序
但是我需要一个视图A来显示已经画好的图形。还需要另外一个全透明视图B来和用户交换(比如显示拖动和绘图过程的动作)
而且要让用户感觉就像在A上直接绘图。A是单文档的视图B是我自己創建的一个窗口,全透明覆盖在A视图上,大小和A一样
你可能会问为什么我要把绘图的显示和交互分开呢。因为这样比较好实现绘图过程中的一些操作
之前我把B窗口设置为全透明,但是这样B就鼠标穿透了响应不了鼠标消息,也就无法和用户交互了怎样才能把B窗口设為全透明而又能响应鼠标消息呢?
这么妥协了,会不会造成效果看起來不会呢
这样看起来效果不好吧
透明度为1 肉眼是看不出来的
你不说你都设置为全透明了吗 只要是popup类型的窗口 都可以设置透明度
我把透明度设置为10了,鼠标还昰穿透了取消不了鼠标穿透啊
透明度提高到鼠标不穿透但又看上去是透明的程度即可,不要全透明
我提升到了100都还是穿透 //把窗口设置為透明并鼠标穿透
直接在内存DC上画好 在拷贝到设备DC上 你的设计思想有问题
我知道可以。但是我要实现交互绘图过程中的动画效果显示和茭互分开比较好
我知道可以。但是我要实现交互绘图过程中的动画效果显示和交互分开比较好
直接在内存DC上画好 在拷贝到设备DC上 你的设计思想有问题
不行 这样后B还是鼠标穿透,只是A再也响应不了客户区鼠标消息了
你不是说只想让A用来显示吗? A还要响应鼠标消息
不行 这样后B还是鼠标穿透只是A再也响应不了客户区鼠标消息了 我只想让A用来显示,而B用来交互可惜B鼠标穿透了。把A覆盖到B的前面来就好了可惜做不到。要是B不穿透B在A前面,A根本就不能响应鼠标消息
就是让A不用响应消息只管显示
真是奇葩的设计,显示和操作分开实在想不出方便控制在哪本质讲操作操作最终是依赖于你的数据逻辑和数据,和显示出来的东西是一点都没有关系,另外使用透明窗口实际是一个很浪費运行效率的处理
好像是我理解错了。看来我对窗口绘图机制没理解
请教一下:如果我要在窗口绘图,是不是在dc上调用的每一个绘图操莋都会激发OnDraw函数的调用呢
其实我是想问,窗口上图形一个像素的改变都要通过ondraw吗可以越过OnDraw吗?
谢谢!你说的才是我想要的