xiaonangua
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3163回复:6

如何创建窗口显示接收到的视频图像

楼主#
更多 发布于:2005-08-03 17:53
  对视频数据进行实时传输,之前是基于单文档的做的接收。现在接收端是基于对话框,可以创建一个窗口实时显示接收到的视频数据吗。如果可以,怎么创建呢。
看到过这样一段代码,不知道是基于对话框还是文档/视图的。
m_hWndCon = CreateWindow("MDICLIENT", "接收窗口",               WS_CAPTION|WS_EX_MDICHILD|WS_VISIBLE, 0, 0, 380, 284,               0 , 0,ghInstApp, (LPVOID) &ccs);
m_hDC=GetDC(m_hWndCon);
对CreateWindow的最后两个参数不理解。望大家指教。
hhyjmd
驱动牛犊
驱动牛犊
  • 注册日期2004-06-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-08-03 21:23
请参考MSDN中:

HWND CreateWindow(          LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu,
    HINSTANCE hInstance,
    LPVOID lpParam
);
hInstance:
[in] Windows 95/98/Me: Handle to the instance of the module to be associated with the window.
Windows NT/2000/XP: This value is ignored.

pParam point to a CLIENTCREATESTRUCT structure.

The CLIENTCREATESTRUCT structure contains information about the menu and first multiple-document interface (MDI) child window of an MDI client window. An application passes a pointer to this structure as the lpvParam parameter of the CreateWindow function when creating an MDI client window
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-08-03 22:34
对,先看看msdn,这样的问题就很容易解决了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-08-06 23:30
下面是引用xiaonangua于2005-08-03 17:53发表的如何创建窗口显示接收到的视频图像:
  对视频数据进行实时传输,之前是基于单文档的做的接收。现在接收端是基于对话框,可以创建一个窗口实时显示接收到的视频数据吗。如果可以,怎么创建呢。
看到过这样一段代码,不知道是基于对话框还是文档/视图的。
m_hWndCon = CreateWindow("MDICLIENT", "接收窗口",               WS_CAPTION|WS_EX_MDICHILD|WS_VISIBLE, 0, 0, 380, 284,               0 , 0,ghInstApp, (LPVOID) &ccs);
m_hDC=GetDC(m_hWndCon);
对CreateWindow的最后两个参数不理解。望大家指教。


我认为你应该用directshow来做你这个应用,会事半功倍,而且将来扩展性非常强。
如果用directshow,就不会这么麻烦要自己做窗口了。而且由于使用流水线模型处理和指针传递,效率非常高,如果不使用的话,很难满足专业级的应用。
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-08-07 11:39
下面是引用seahawk于2005-08-06 23:30发表的:


我认为你应该用directshow来做你这个应用,会事半功倍,而且将来扩展性非常强。
如果用directshow,就不会这么麻烦要自己做窗口了。而且由于使用流水线模型处理和指针传递,效率非常高,如果不使用的话,很难满足专业级的应用。

楼主应该是“不知道怎样创建窗口”,而不是“不会使用DirectShow或VFW之类的”吧
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
stanlyburg
驱动小牛
驱动小牛
  • 注册日期2005-01-30
  • 最后登录2008-08-12
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望72点
  • 贡献值0点
  • 好评度57点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-08-07 17:04
楼主,做视频现实,肯定要用到DirectX中的Directshow,不是创建窗口那么简单。我说说自己的经验,已经有两年没碰过了,可能记错了。

首先肯定要创建窗口,就像楼上说的一样。
然后,要创建DirectDraw对象...
BOOL InitDDraw(HWND hwnd)
{
 //创建DirectDraw对象,设置显示模式,创建主页面,设置切换叶面
dis.CreateWindowedDisplay(hwnd, 1024, 768);
dis.InitClipper();
//创建表面pSF,并导入位图。
   dis.CreateSurfaceFromBitmap(&pSF, "1.bmp", 400, 400);
    return TRUE;
}
还要做双缓冲切换,使用到DirectX里面的CDisplay,CSurface等类。
有兴趣可以给你发个例子
xiaonangua
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-08-07 19:31
我做的工作对图像处理这块要求不是很高,主要是对1394能够进行视频图像传输的性能进行验证。我现在是要在两台装有1394卡的PC间传送视频图像,首先在一端一贞一贞采集视频数据(VFW),然后传给另一端,另一端接收到的数据存储在buffer,之前接收端我是基于单文档作的,用DrawDibDraw()按位图格式保存便可以实时显示。现在我想把接收端的程序嵌入到大的程序程序里(基于对话框)。所以,我想自己创建一个回显窗口,得到他的绘图句柄(GetDC),同样用DrawDibDraw来实现。当然,directdraw是很好的选择。但因为之前做过一些工作,只要能实现这一步就可以了,所以此思路能实现最好。
有个想法:创建一个对话框,放置一个picturebox控件,来接收视频数据。不知道可行不可行。大家多给意见啊。
感谢大家的帮助,5楼的,方便的可以发给我,kitty12502@163.com,多多学习。
游客

返回顶部