aplayer:是否你的 APlayer 窗口设置成了视频大小,而这时为音频,视频大小为 0x0 所以看不到了?
如果还有问题,把你能重现问题的框架代码发给我(不要全部),我这边来试试看。
BOOL CDemoDlg::OnInitDialog()
{
...
CWnd *pWnd;
pWnd=GetDlgItem(IDC_PLAYER1);
if(pWnd)
{
pWnd->SetWindowPos( NULL,0,30,675,355,SWP_NOZORDER); //把按钮移到窗口的
}
}
void CDemoDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
CWnd *pWnd;
pWnd=GetDlgItem(IDC_BUTTON8); //全屏/退出全屏 按钮
if(pWnd)
{
pWnd->SetWindowPos( NULL,cx-25,cy-25,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_PLAYER1);
if(pWnd)
{
if(FullScreen)
{
pWnd->SetWindowPos( NULL,0,0,cx,cy-50,SWP_NOZORDER);
}else
{
pWnd->SetWindowPos( NULL,0,30,cx,cy-80,SWP_NOZORDER);
}
}
pWnd=GetDlgItem(IDC_BUTTON1);
if(pWnd)
{
pWnd->SetWindowPos( NULL,cx/2-13,cy-28,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_BUTTON2);
if(pWnd)
{
pWnd->SetWindowPos( NULL,cx/2-41,cy-28,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_BUTTON3);
if(pWnd)
{
pWnd->SetWindowPos( NULL,cx/2+15,cy-28,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_BUTTON7);
if(pWnd)
{
pWnd->SetWindowPos( NULL,cx-36,0,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_BUTTON6);
if(pWnd)
{
pWnd->SetWindowPos( NULL,cx-65,0,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_PlayTime); //静态文件本(播放时间进度)
if(pWnd)
{
pWnd->SetWindowPos( NULL,60,cy-19,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_PlayTotalTime); //静态文件本(总播放时间)
if(pWnd)
{
pWnd->SetWindowPos( NULL,138,cy-19,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
pWnd=GetDlgItem(IDC_PlayState); //静态文件本(总播放时间)
if(pWnd)
{
pWnd->SetWindowPos( NULL,6,cy-19,0,0,SWP_NOZORDER | SWP_NOSIZE); //把按钮移到窗口的
}
}
BOOL CDemoDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CBitmap m_bitmap;
BITMAP m_bmInfo;
m_bitmap.LoadBitmap(IDB_BK);
m_bitmap.GetObject(sizeof(m_bmInfo),&m_bmInfo);
// CDC* pDC=GetDC();
CDC dc;
dc.CreateCompatibleDC(pDC);
dc.SelectObject(&m_bitmap);
//pDC->SelectObject(&m_bitmap);
CRect m_rect;
GetClientRect(&m_rect);
pDC->StretchBlt(0,0,m_rect.Width(),m_rect.Height(),&dc,0,0,m_bmInfo.bmWidth,m_bmInfo.bmHeight,SRCCOPY);
dc.DeleteDC();
/* static int a=0;
a++;
CString str;
str.Format("%d",a);
TRACE("OnEraseBkgnd(CDC* pDC) "+str+"\r\n");
*/ return true;//返回真
// return CDialog::OnEraseBkgnd(pDC);
}
以上是部分代码