VB调用摄像头问题

在网上找了一个例子,代码可以用,但是有一点不明白,不是说VM_USER以下的是系统消息,以上的是用户自定义消息吗?但是代码中用ConstWM_User=&H400'用户消... 在网上找了一个例子,代码可以用,但是有一点不明白,不是说VM_USER以下的是系统消息,以上的是用户自定义消息吗?但是代码中用
Const WM_User = &H400 '用户消息开始号
Const WM_CAP_Connect = WM_User + 10 '连接一个摄像头

就可以连接摄像头?本人小白,实在弄不懂这是怎么实现的,求大神解答,源码来自http://hi.baidu.com/mjs1t/item/b31eb1dfba8bb9896cce3f43
因为源码实在太长了,粘贴不完,粘了以下一部分,这几个消息实在弄不明白怎么实现的,难道是系统消息吗?求大神解答

用VB用摄像头拍照并保存到本地的程序?
打开Visual Basic新建一个工程,添加四个Command 命令按钮,复制以下代码
' '以下是完整代码,在 VB6 和 WindowsXP 下调试通过:
'在窗体放置4个控件:Command1、Command2、Command3、Command4
'程序调试时要注意:终止程序要用运行中的 Form1 窗口关闭。不要使用 VB 主窗口的菜单命令或 VB 工具栏上的关闭按钮,这样无法关闭打开的视频窗口,导致 VB 无响应。如果 VB 无响应,只有用系统任务管理器才能终止 VB 进程,调试过程中所做的修改将丢失。
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
Dim ctCapWin As Long, ctAviPath As String, ctPicPath As String, ctConnect As Boolean
'视频窗口控制消息常数
Const WS_Child = &H40000000: Const WS_Visible = &H10000000
Const WS_Caption = &HC00000: Const WS_ThickFrame = &H40000
Const WM_User = &H400 '用户消息开始号
Const WM_CAP_Connect = WM_User + 10 '连接一个摄像头
Const WM_CAP_DisConnect = WM_User + 11 '断开一个摄像头的连接
Const WM_CAP_Set_PreView = WM_User + 50 '使预览模式有效或者失效
Const WM_CAP_Set_Overlay = WM_User + 51 '使窗口处于叠加模式,也会自动地使预览模式失效。
Const WM_CAP_Set_PreViewRate = WM_User + 52 '设置在预览模式下帧的显示频率
Const WM_CAP_Edit_Copy = WM_User + 30 '将当前图像复制到剪贴板
Const WM_CAP_Sequence = WM_User + 62 '开始录像,录像未结束前不会返回。
Const WM_Cap_File_Set_File = WM_User + 20 '设置当前的视频捕捉文件
Const WM_Cap_File_Get_File = WM_User + 21 '得到当前的视频捕捉文件
展开
 我来答
damyzl
推荐于2016-08-25 · TA获得超过1586个赞
知道大有可为答主
回答量:1475
采纳率:74%
帮助的人:905万
展开全部
自定义消息意味着自己定义、自己解释,两者需要合起来看。
SendMessage 只负责发送消息,对于消息的解释需要你的代码来处理,相信消息接收窗体应该有专门的代码来解释这些“自定义”消息的。

所以,自定义的值是多少并不是关键(只要是系统允许的),只要代码能够自己解释该值的含义即可。
而系统预定义消息则有固定的值,许多时候你可以直接用数值来代替,定义成常数是为了增加代码的可读性。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式