hallo,
ich speichere in einem memory dc eine bitmap ab. eraseDC soll nach dem blitten ausgeführt werden um das flackern welches ich mit invalidate() erhalte zu beseitigen, allerdings wird einfach nicht neugezeichnet sodass neue signale über die alten gemalt werden. was mache ich falsch?
mfg cappaja
ich speichere in einem memory dc eine bitmap ab. eraseDC soll nach dem blitten ausgeführt werden um das flackern welches ich mit invalidate() erhalte zu beseitigen, allerdings wird einfach nicht neugezeichnet sodass neue signale über die alten gemalt werden. was mache ich falsch?
C++:
void CGraph::DataTransfer(LPVOID pParam)
{
CWiwoDlg* pWiwoDlg = reinterpret_cast<CWiwoDlg*>(pParam);
// create an memory-dc for saving datapoints
CDC* pDC = m_pWnd->GetDC();
CDC memDC, eraseDC;
memDC.CreateCompatibleDC(pDC);
eraseDC.CreateCompatibleDC(pDC);
m_pBitmap = new CBitmap();
m_pBitmap->CreateBitmap(m_nWidth, m_nHeight, 1, memDC.GetDeviceCaps(BITSPIXEL), NULL);
m_pEraseBitmap = new CBitmap();
m_pEraseBitmap->CreateBitmap(m_nWidth, m_nHeight, 1, eraseDC.GetDeviceCaps(BITSPIXEL), NULL);
memDC.SelectObject(m_pBitmap);
eraseDC.SelectObject(m_pEraseBitmap);
.................................
pDC->BitBlt(InpRect.left, InpRect.top, m_nWidth, m_nHeight, &memDC, 0, 0, SRCPAINT);
pDC->BitBlt(InpRect.left, InpRect.top, m_nWidth, m_nHeight, &eraseDC, 0, 0, SRCPAINT);
delete pWiwoDlg->m_pGraph->m_pBitmap;
m_pWnd->ReleaseDC(pDC);
mfg cappaja
Zuletzt bearbeitet: