15,980
社区成员




void DlgOutputShow::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
DrawOutputBorder();
}
void DlgOutputShow::DrawOutputBorder(void)
{
if (!IsWindowVisible())
{
return;
}
CPen *pOldPen = NULL;
CPen pPen;
CRect rc(0,0,0,0);
GetWindowRect(&rc);
g_servMainDlg->GetDlgItem(IDC_STATIC_PREV_WND)->ScreenToClient(&rc);
if (g_servMainDlg->m_iCurWndIndex == m_iSubWndIndex)
{
pPen.CreatePen(PS_SOLID, 2, RGB(0,255,0));//green
}
else
{
pPen.CreatePen(PS_SOLID, 2, RGB(125, 125, 116));
}
rc.right += OUTPUT_INTERVAL/2;
rc.bottom += OUTPUT_INTERVAL/2;
CDC *pDC = g_servMainDlg->GetDlgItem(IDC_STATIC_PREV_WND)->GetDC();
ASSERT(pDC);
pDC->SelectStockObject(NULL_BRUSH);
pOldPen = pDC->SelectObject(&pPen);
pDC->Rectangle(&rc);
if (pOldPen)
{
pDC->SelectObject(pOldPen);
}
else
{
WriteLog( DEBUGLEVEL_ERROR, __FILE__, __LINE__,"GDI leak now,m_camNo[%d] error[%d]!!!", m_camNo, GetLastError());
}
ReleaseDC(pDC);
}
if(g_servMainDlg && g_servMainDlg->GetSafeHwnd())
{
CWnd *pWnd = g_servMainDlg->GetDlgItem(IDC_STATIC_PREV_WND);
if(pWnd && pWnd->GetSafeHwnd())
{
CPen pPen;
if (1)//g_servMainDlg->m_iCurWndIndex == m_iSubWndIndex)
{
pPen.CreatePen(PS_SOLID, 2, RGB(0,255,0));//green
}
else
{
pPen.CreatePen(PS_SOLID, 2, RGB(125, 125, 116));
}
CRect rc(0,0,0,0);
pWnd->GetClientRect(&rc);
rc.right += OUTPUT_INTERVAL/2; rc.bottom += OUTPUT_INTERVAL/2; //这里是不是超出了区域?
CDC *pDC = pWnd->GetDC();
ASSERT(pDC);
CBrush *pOldBrush = (CBrush *)pDC->SelectStockObject(NULL_BRUSH);
CPen *pOldPen = pDC->SelectObject(&pPen);
pDC->Rectangle(&rc);
pDC->SelectObject(pOldPen);
pDC->SelectObject(pOldBrush);
pWnd->ReleaseDC(pDC);
}
}