摄像头问题 ( 积分: 30 )

  • 主题发起人 主题发起人 xzxiaohai
  • 开始时间 开始时间
X

xzxiaohai

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中,若panel属于窗体,则摄像头采集的图象能够显示在panel中,
若panel属于tabsheet,则采集的图象不能够显示在panel中,
怎样才能使tabsheet中的panel显示摄像头采集的图象?
 
不要直接显示到panel,而将它显示到Image即可.效果一样的.
代码如下:
procedure TMainForm.N3Click(Sender: TObject);
begin

hWndC := capCreateCaptureWindowA('My Own Capture Window',WS_CHILD or WS_VISIBLE ,Image1.Left,Image1.Top,Image1.Width,Image1.Height,Panel6.Handle,0);

if hWndC <> 0 then

begin

SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
end;


end;
 
关键是如下一句:
hWndC := capCreateCaptureWindowA('My Own Capture Window',WS_CHILD or WS_VISIBLE ,Image1.Left,Image1.Top,Image1.Width,Image1.Height,Panel6.Handle,0);

重点是如下代码:
Panel6.Handle
你把Panel6.Handle换成tabsheet.Handle试一下即可解决.
 
如果你用的tabControl ,建议你用 pageControl
我没发现有什么问题
 
多人接受答案了。
 
后退
顶部