我做了一个视频捕捉的ocx控件,在VB的debug中运行时,可以正常显示动态图像,但使用该控件的程序编译成exe文件后,在执行时就只能显示初始化时的那幅画面,然后就不动了。请问各位高人是什么原因呀?
我的控件是在初始化时创建了一个avi子窗口。然后在子窗口中显示捕捉到的视频。
我是使用的System32目录下的avicap32.dll里面的createwindowA函数以UserControl为父窗体建立的显示子窗体。
    在控件初始化时Create了一个显示窗体。
    在调用该控件时(设计时)该控件可以很好的显示动态捕捉的画面,使用调试执行程序时也可以很好的显示动态画面。
    但我把调用了该控件的程序编译成.exe文件,再执行时就只能显示初始的一幅静止画面了。
    以上就是整个“案发经过”了。大哥们帮帮忙,我现在有个老外编的控件,也是用的avicap32.dll编的,他的就运行得蛮好。但我没有他的源代码!我想自己编一个。

解决方案 »

  1.   

    你必须  控件名.refresh  和  子窗体.refresh  这些都是必须的
      

  2.   

    但是用capCreateCaptureWindowA函数创建的子窗体怎么Refresh呀?该函数的原型如下:Declare Function capCreateCaptureWindowA Lib "avicap32.dll" ( _
        ByVal lpszWindowName As String, _
        ByVal dwStyle As Long, _
        ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Integer, _
        ByVal hWndParent As Long, ByVal nID As Long) As Long
    返回的是该子窗体的句柄数值hwnd应该怎么refresh它呀?
      

  3.   

    感谢Gelim(Gelim),高手就是高手!小弟佩服万分!解决!