Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2087076
  • 博文数量: 909
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 12260
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:50
文章分类

全部博文(909)

文章存档

2008年(909)

我的朋友

分类:

2008-05-06 22:29:36

一起学习
IE中关于半透明和透明控件的一些说明

作者:qcqty

下载源代码

一、大家在有些时候希望自己做的控件是半透明或透明的,就像半透明的窗体一样,我经过一段时间的查询,发现这个是可以实现,我们来看看它的实现以及带来的一些问题吧。

  首先:制作控件的时候需要无窗口支持,也就是说控件不需要窗口。如果控件有窗口,那么我们需要处理关于窗口绘制的很多麻烦事情。窗口上,我们如果没有进行绘制的部分,微软的人为我们想到了,他们处理了,不过处理的非常不理想,大家可以试验一下,简直是非常的.......。而且我们的窗口一定是矩形,不可能成为其他的形状。
  其次:我们需要对放到ie中的控件进行一定的设置,我们需要在object标签的风格上加上FILTER: alpha(opacity=80);的一些东西,他的意思是告诉ie我们的控件透明的程度。具体请看test.html。而且这个需要较高版本的ie的支持。

二、相关代码,从在这个函数,也可以在创建的时候选择无窗口支持,想到会添加一下代码:
DWORD CTestCtrl::GetControlFlags()

{

	DWORD dwFlags = COleControl::GetControlFlags();





	// The control can activate without creating a window.

	// TODO: when writing the control''s message handlers, avoid using

	//		the m_hWnd member variable without first checking that its

	//		value is non-NULL.

	dwFlags |= windowlessActivate;

	return dwFlags;

}


三、以下是想到图片和程序运行图片,仅供参考:


图一 向导图片


图二 程序运行结果

四、程序编译以后,会注册控件,打开test.html就可以看到结果了。 需要说明的是控件是无窗口的,这样对处理窗口的事情有些麻烦,比如点控件希望出现菜单,这个实现由问题,而且对消息的捕获不是很灵。我采用了迂回的方法解决的这个问题,如果那位高手可以直接解决这个问题,请告诉我,在这里先谢谢了。这个技术实现还要感谢曾经在vckbase上帮助过我的朋友们。 下载本文示例代码


IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明IE中关于半透明和透明控件的一些说明
阅读(247) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~