the ->ShowWindow(SW_SHOW)? I think it might work for you. It shouldn't
capture it.
Well I came up with this so far: I'm not 100% comfortable with it.
LSFlashPlayerWnd is derived from CWnd and holds the Flash ActiveX
control. It gets created by who ever needs to display a flash movie. The
reason it is a seperate window and not just using the activex directly is
because I needed to setup timers for progress and stop notifications back
to the parent.
Anyway, I simply show the ActiveX control for a second, and copy what is
in its DC.
void LSFlashPlayerWnd::CopyToBitmap()
{
CRect WRect;
GetWindowRect(&WRect);
GetParent()->ScreenToClient(&WRect);
//since this window is normally hidden, unless the video is being
played
//show the window, so that we can copy the image off of it.
ShowWindow(SW_SHOW);
//make sure the player window is drawn
m_Player.Invalidate();
m_Player.UpdateWindow();
//get the dc of the player
CDC *pDC = m_Player.GetDC();
//create the bitmap
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
m_Bitmap.DeleteObject();
m_Bitmap.CreateCompatibleBitmap(pDC,WRect.Width(),WRect.Height());
//copy into the bitmap
int SavedDC = MemDC.SaveDC();
MemDC.SelectObject(&m_Bitmap);
MemDC.BitBlt(0,0,WRect.Width(),WRect.Height(),pDC,0,0,SRCCOPY);
MemDC.RestoreDC(SavedDC);
//release the DC of the player
m_Player.ReleaseDC(pDC);
//and hide it again
ShowWindow(SW_HIDE);
}
AliR.
"AliR (VC++ MVP)" <AliR@online.nospam> wrote in message
news:hvhll.10654$pr6.1649@flpi149.ffdc.sbc.com...
Hi Everyone,
I implementing the capability to play Flash movies in my application.
Currently I'm using the Flash player ActiveX control to play the movies.
It gives me the basic functionality that I need.
But I need to grab a screen shot of the video to display as a preview, I
can't figure out how to do this. I think I ran into something on the
web for this but I can't find it anymore.
Anyone has any suggestions?
I'm also open to suggestions on a player library that would be better
than the ActiveX control.
AliR.