我有一个WinForm窗口,窗口上面要铺一张图片,
这张图片的大部分是透明的,我希望用户可以点击或者拖动WinForm窗口上的控件进行操作。谁能够给出代码钩子透明绘制

解决方案 »

  1.   

    看我的博客,有通用的实现,大型企业级控件库的应用。=======================================================
    .NET快速开发整合框架(RDIFramework.NET),基于.NET的快速开发、整合框架,给用户和开发者最佳的.Net框架部署方案。
    平台博客:[CNBLOGS]http://www.cnblogs.com/huyong 
         [CSDN]http://blog.csdn.net/chinahuyong
    交流QQ:406590790 (请注明:CSDN)
    平台微博:http://t.qq.com/yonghu86
    邮件交流:[email protected]
      

  2.   


    你只要挡住了。那么你怎么可能会触发事件呢?所以你只要在那个位置的动作就触发在那个位置的事件。没你想的那么麻烦。
    事件处理就是你原来的控件的事件处理。只是增加了。对控件事件的invoke而已。
      

  3.   

    根据坐标找控件,再提交事件        private int offsetX = 0;
            private int offsetY = 0;
            private double xRatio = 1;
            private double yRatio = 1;
            
            private void pbLayout_MouseMove(object sender, MouseEventArgs e)
            {
                if (pbLayout.Image == null) return;
                if (e.X >= ((Bitmap)pbLayout.Image).Width) return;
                if (e.Y >= ((Bitmap)pbLayout.Image).Height) return;
                if (xRatio == 0 || yRatio == 0) return;
                //画面可能和地图大小及位置不一致,如星际争霸的小地图与战斗场景
                double X, Y;
                X = e.X - offsetX;
                Y = e.Y - offsetY;
                X = X / xRatio;
                Y = Y / yRatio;
                //根据坐标找到你的控件。
                //...
            }