主窗体设计(10)

 

处理CPreView类的WM_LBUTTONDBLCLK消息,当用户双击某个窗口时,将窗口放大到父窗口的大小或者恢复为窗口的初始大小。代码如下:

void CPreView::OnLButtonDblClk(UINT nFlags, CPoint point) 

{

if (m_Stop)  //在停止预览时禁止双击

return;

m_Dbled = ! m_Dbled;

//记录原始区域大小

CRect rc,prc;

GetClientRect(rc); //获得视频窗口的区域大小

this->MapWindowPoints(GetParent(),rc);

GetParent()->GetClientRect(prc); //获得父窗口的客户区域大小

int div = ((CPanel*)GetParent())->m_Div;

prc.DeflateRect(div,div,div,div);

if (m_Dbled)

{

((CPanel*)GetParent())->ShowOnly(m_Index); //显示预览窗口

  SetWindowPos(&wndTop,prc.left,prc.top,prc.Width(),prc.Height(),SWP_SHOWWINDOW);

Invalidate(); //刷新窗口

if (m_ShowImage) //是否显示图片

{

//更新视频预览窗口

VCAUpdateOverlayWnd(m_hWnd);

VCAUpdateVideoPreview(m_Index,m_hWnd);

}

}

else

{

((CPanel*)GetParent())->ShowAll(); //显示所有预览窗口

((CPanel*)GetParent())->OnSize(0,0,0);

Invalidate();   //刷新窗口

if (m_ShowImage) //是否显示图片

{

//更新视频预览窗口

VCAUpdateOverlayWnd(m_hWnd);

VCAUpdateVideoPreview(m_Index,m_hWnd);

}

}

CStatic::OnLButtonDblClk(nFlags, point);

}

读书导航