我用Winform UserControl做了一个不规则的ActiveX,在Container里面测试可以显示为不规则窗口,但是这个ActiveX加载到HTML里面,仍然显示了背景区域(规则的矩形)。还有一个问题是:我的ActiveX加载到HTML页面后,拦截了鼠标的移动和点击消息,我想继续传递给后面的HTML页面,不知道如何实现啊!欢迎任何意见!

解决方案 »

  1.   

    Red_angelX(八戒) ( ) 信誉:100    Blog   加为好友  2007-05-16 10:25:53  得分: 0  
       咋可以放300分的帖子呢.*-------------------------------先在能发300分的帖子版块发帖,然后再将帖子移到本版即可。
      
     
      

  2.   

    to 楼上:laiyiling在VC版可以放300,发了帖转移到其他版就行了。特别是转移到一个三角的版块,更有轰动效应。
      

  3.   

    第一个透明设置不知道能不能修正
    第二个以前讨论过winform的传消息,web的按钮什么的都不是标准hwnd,能传么?
      

  4.   

    1.关于背景,我想用style应该可以达到目的。2.关于activex传值给html,首先,你的activex得提供一个接口获得这个值,然后用script访问得到即可。但是你说的后面的html,似乎你的意思是要传给服务器端?如果是,你可以用xmlhttp或ajax等即可。如果是要传给另外一个html,那是肯定不行的,你没有分清客户端执行和服务端执行,当然,如果这个html已经在客户端打开,则可以用window.opener……传值过去。
      

  5.   

    加入ASP。NET C#群吧,群号是:  1873156
      

  6.   

    to yizia消息只是传递给加载ActiveX的HTML页面,其他的任何都不干了
      

  7.   

    to Red_angelX第一个透明设置不知道能不能修正>  It can't work.
      

  8.   

    具体也没做过 理论上觉得
    html 界面 本身只能是规则的.
    activex 对象引入 也不能破坏页面布局规则吧
    可以考虑activex多于部分和html页面部分的界面颜色或图片背景重合
      

  9.   

    做一不规则形状的ActiveX控件,用SetWindowRegion方法,但最终效果好象是同容器有关,如VB,VC下,划出去的区域透明化了,效果比较好;但在如Test   ActiveX   Container上,划出去的区域无法透明,如果在划出去的区域上显示对话框,因为自己控件不在那部分区域重画,造成对话框按完后,还造样残留,而且如在划出去的区域上叠放其他控件,只能根据叠放次序(Z-order),在本控件上的可以显示,在本控件下的无法显示,好象没有用SetWindowRegion设定过一样。但在VB,VC下就不管叠放次序,都能正确显示其他叠放控件.   小弟的一点见解, 呵呵
      

  10.   

    to 我用Winform UserControl做了一个不规则的ActiveX,在Container里面测试可以显示为不规则窗口,但是这个ActiveX加载到HTML里面,仍然显示了背景区域(规则的矩形)。承载容器不同,而造成的差别。Winform Usercontrol的不规则形状,是由于TransparentColor来形成的,而这在浏览器中无法体现。
    要想在浏览器中实现,你可以直接用js去做。to 还有一个问题是:我的ActiveX加载到HTML页面后,拦截了鼠标的移动和点击消息,我想继续传递给后面的HTML页面,不知道如何实现啊!比较困难ps:.net做的ActiveX?
      

  11.   

    to Knight94是用C#做的
    关于容器的问题,是不是可以做一个类似container的假的东西放在IE,但偶担心这个假的又会引入新的背景问题。
      

  12.   

    to 关于容器的问题,是不是可以做一个类似container的假的东西放在IE,但偶担心这个假的又会引入新的背景问题。这样是不行的,正如你所说,会造成新的背景问题。
      

  13.   

    这里用ActiveX,还不如直接用c/s来实现,会更好一些。
      

  14.   

    laiyiling (陌生人[MVP])  
    -------------------------------
    VC的高人!不知道你对UserControl使用Region来设置不规则后是不是可以达到效果.
    Control.Region是用来设置控件的显示区域的.
      

  15.   

    TO hbxtlhx(平民百姓-自已动手,丰衣足食) 我现在用的是背景位图计算GraphicsPath得到Region,然后通过设置属性传入的。但是这种做法是否在普通情况下能起作用,但是在HTML中的ActiveX好像就不行了。
      

  16.   

    第二个问题已经解决,哈哈,用C++的方法,(Spy++)查找窗口句柄然后SendMessage
      

  17.   

    继续讨论第一个问题:简单说就是如果用C#实现一个不规则的ActiveX控件。BTW: 因为我是C++出身的,不知道在.NET里面是不是有和ActiveX类似的控件,只要能在HTML里面调用就可以了。难道是用WebForms吗?
      

  18.   

    楼主应该想一个问题吧,如果用.NET来做控件在网页上使用,那么一定要保存使用机(客户机)上一定要安装这个.NET的框架才行啊.如果不用考虑是否在客户机上安装.NET框架这个问题,单说不规则的控件,其实这个就不是说在.NET中实现实现不了的问题了,在Windows环境下的.NET其实就是基于系统API的,如果在VC++里能实现,那么在.NET中也应该能实现.我只做过在网页上使用.NET的窗体控件,但是对于不规则的还没有做过,但是凭楼主的C++的功底来说,应知道用VC++写的组件能不能在HTML中实现这个不规则的控件.还是那句话,如果C++可以,那么离.NET做成也就不远了.