如题

解决方案 »

  1.   

    在接收到WM_erasebkgnd的时候返回空刷就能透明,但后续问题还有许多,也不是哪个控件都能这么处理的。当然如果你的控件全是用户自画的那就另当别论,不过更麻烦。
      

  2.   

    鼠标事件检测不到,要通过什么事件检查Mouse位置
    比如说我怎么样接收鼠标的MouseDown事件
      

  3.   

    Api啊,Getkeystaut()检查Mouse是否按下
    GetCurrentPos()检查Mouse位置
    ...
      

  4.   

    那我什么时候调用Getkeystaut()和GetCurrentPos()呢?
      

  5.   

    而且Getkeystaut()是判断键盘事件,我是要鼠标事件
      

  6.   

    对透明控件你可以在窗体里捕获MOUSE动作,再检查它的位置是否在你的控件范围里面。
      

  7.   

    我不想用这种方法啊,因为我的控件不一定放在form里面
    有没有一种直接的方法可以使控件假透明,就是把背景换成控件所在地方的那块图形,这样就有鼠标事件捕获了
      

  8.   

    >>而且Getkeystaut()是判断键盘事件,我是要鼠标事件谁告诉你这个只能判断键盘??等你去查一下MSDN再回来说吧
      

  9.   

    就算是能判断鼠标的事件,那我要什么时候触发它呢?都捕获不到事件了,哪里还有机会触发
    首先说一下,我的控件不一定是放在form里面,所以使用form来触发不行
      

  10.   

    那当然可以,在显示控件前先把该区域的图象保存到缓冲里面,显示控件的时候BITBLT到控件的HDC里,就假透明了。
      

  11.   

    判断得代码可以放在时钟里,也可以Hook到时Frm上去.
      

  12.   

    to  province_(雍昊):
        我对API编程不熟悉,你能不能给一些主要代码呢?
      

  13.   

    to  province_(雍昊):
        还有,我控件是可以移动的,得到移动目的地的图像是一件非常麻烦的事情啊