我用c#写的usb摄像头程序,预览画面可以看到了,现在我想在预览画面上实时地画一个矩形框,并跟踪着视频上的某个像素点,视频画面我是放在picturebox里的,但是我在里面画了就是看不到那个框,不知道是不是被视频遮住了,如果是静态的图片就可以看到那个方框,在其他论坛问过人,有人说再在上面加个picturebox,然后在picturebox上面画,可是我试了还是不行,即使把picturebox的背景设置成透明也会挡住视频画面,所以这个方法应该行不通。以前看过有人用vc做的可以实现,但是我现在是想用c#来做,不知道有没有办法办到,只要能把框画出来并实时显示在视频上就行了,那位高手能解决吗,分数最多能给100分,小弟全给了

解决方案 »

  1.   

    下面是视频预览画面的函数:
    private void OpenCapture()
    {
                int intWidth = this.pictureBox1.Width;
                int intHeight = this.pictureBox1.Height;            int intDevice = 0;
                string refDevice = intDevice.ToString();
                hHwnd = MainForm.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 480, this.pictureBox1.Handle.ToInt32(), 0);
                if (MainForm.SendMessage(hHwnd, 0x40a, intDevice, 0) > 0)
                {
                    MainForm.SendMessage(this.hHwnd, 0x435, -1, 0);
                    MainForm.SendMessage(this.hHwnd, 0x434, 0x42, 0);
                    MainForm.SendMessage(this.hHwnd, 0x432, -1, 0);
                    MainForm.SetWindowPos(this.hHwnd, 1, 0, 0, intWidth, intHeight, 6);
                }
                else
                {
                    MainForm.DestroyWindow(this.hHwnd);
                }
    }我有试过截图再处理,但是就是看不到那个框,不知道为什么
      

  2.   

    还是没满意答案,难道真的没有人能用c#解决吗?分数都散发了,谢谢各位的支持,不过后来我想了个办法,就是再另外做一个form