阅读:3163回复:6
如何创建窗口显示接收到的视频图像
对视频数据进行实时传输,之前是基于单文档的做的接收。现在接收端是基于对话框,可以创建一个窗口实时显示接收到的视频数据吗。如果可以,怎么创建呢。
看到过这样一段代码,不知道是基于对话框还是文档/视图的。 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的最后两个参数不理解。望大家指教。 |
|
沙发#
发布于: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 |
|
板凳#
发布于:2005-08-03 22:34
对,先看看msdn,这样的问题就很容易解决了
|
|
|
地板#
发布于:2005-08-06 23:30
下面是引用xiaonangua于2005-08-03 17:53发表的如何创建窗口显示接收到的视频图像: 我认为你应该用directshow来做你这个应用,会事半功倍,而且将来扩展性非常强。 如果用directshow,就不会这么麻烦要自己做窗口了。而且由于使用流水线模型处理和指针传递,效率非常高,如果不使用的话,很难满足专业级的应用。 |
|
|
地下室#
发布于:2005-08-07 11:39
下面是引用seahawk于2005-08-06 23:30发表的: 楼主应该是“不知道怎样创建窗口”,而不是“不会使用DirectShow或VFW之类的”吧 |
|
|
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等类。 有兴趣可以给你发个例子 |
|
6楼#
发布于:2005-08-07 19:31
我做的工作对图像处理这块要求不是很高,主要是对1394能够进行视频图像传输的性能进行验证。我现在是要在两台装有1394卡的PC间传送视频图像,首先在一端一贞一贞采集视频数据(VFW),然后传给另一端,另一端接收到的数据存储在buffer,之前接收端我是基于单文档作的,用DrawDibDraw()按位图格式保存便可以实时显示。现在我想把接收端的程序嵌入到大的程序程序里(基于对话框)。所以,我想自己创建一个回显窗口,得到他的绘图句柄(GetDC),同样用DrawDibDraw来实现。当然,directdraw是很好的选择。但因为之前做过一些工作,只要能实现这一步就可以了,所以此思路能实现最好。
有个想法:创建一个对话框,放置一个picturebox控件,来接收视频数据。不知道可行不可行。大家多给意见啊。 感谢大家的帮助,5楼的,方便的可以发给我,kitty12502@163.com,多多学习。 |
|