动态创建透明的CRichEditCtrl

finder_zhang 广州科淼激光设备有限公司 研发中心经理  2010-08-26 09:41:57
我有一个继承自CWnd的窗,在上面画图的,现在要实现在图上写字的功能.
想在鼠标点击后,于窗上动态创建CRichEditCtrl,并且让该控件透明,可以看到底下所画的内容.

不知道怎样可以做到,之前在论坛里看到 赵杨 (用户名:Jcily) 发的一个 CAutoRich 类,但不太会用.
...全文
159 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
finder_zhang 2010-08-26
回4楼,WS_EX_TRANSPARENT加了没用,另外网站里的DEMO程序我下来看,并没有看到透明的功能啊.能帮我试清楚一下吗?
回复
finder_zhang 2010-08-26
回3楼,不想要半透明的效果,想做到WINDOWS画图那个差不多的功能,后面的可以看到,前面Rich写的字,就直接盖上去.
回复
kalrey 2010-08-26
想办法弄到对话框背景的bitmap,我想你肯定是用位图做背景吧,然后在对话框的OnCtlColor里把控件对应的这块Rect的bitmap取到(应该会吧,用dc),然后把用这块位图创建控件的画刷返回,记得这些工作放到对话框的OnCtlColor做
以上方法没用经过试验,不过应该没问题,个人YY,不是为分而来
回复
kalrey 2010-08-26
在群里就告诉过你,直接把对话框的背景画刷对应的那块弄过来当背景画刷。。。
你丫的那天居然弄个NULL_BRUSH...你都不让重绘了啊。。。
回复
jieleiping 2010-08-26
还有这个WS_EX_TRANSPARENT不知道行不行,没试过。。。
回复
jieleiping 2010-08-26
http://www.codeguru.com/cpp/controls/richedit/article.php/c2407/Transparent-RichEditCtrl.htm
回复
向立天 2010-08-26
你可以考虑这样
把RichEdit放到一个对话框上
然后通过SetLayerWindowAtrribute设置对话框透明
这样RichEdit不就透明了
回复
wgm001 2010-08-26
这个还真有点难度.不过可以用别的办法实现,如:
在你的CWnd的窗上面再创建一个窗口,这个可以实现透明,叠在你的窗口上面.

回复
finder_zhang 2010-08-26
请一定要给出测试过成功的代码.我试过代码成功了,一定结帖结分.
回复
finder_zhang 2010-08-26
问题算是解决了,原来只要加上 WS_EX_TRANSPARENT 就行,但是在控件上点属性设透明,不行的.
用CreateEx 加上 WS_EX_TRANSPARENT 还是不行.
要建好后,再用 ModifyStyleEx 来改才行.
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2010-08-26 09:41
社区公告
暂无公告