Re: PolyLine and autoscrolling canvas
Luigino wrote:
HI Steve,
I'm still keeping trying to solve...
Actually I've made this, in the OnInitDialog (it's a CDialog form) I
coded:
CRect rc;
GetClientRect(&rc);
time_t t;
//
//
m_BaseTime = GetTickCount();
// unless rect is related to your data acquisition, don't use it here.
for (int i=0; i<=rect.right; i++) {
POINT singlepoint;
t = time(NULL);
singlepoint.x = t;
// t is likely a constant here. This loop is not long enough for t to
change.
singlepoint.y = (LONG)((double)rand() / (RAND_MAX + 1)*
(rect.bottom-1)+1);
myQueuePoints.push_back(singlepoint);
}
CDC* pDC = GetWindowDC();
pDC->SetBkColor(RGB(0,0,0));
pDC->SetMapMode(MM_ANISOTROPIC);
t = time(NULL);
HDC hdc = ::GetDC(m_hWnd);
SetWindowExtEx(hdc, t, rect.bottom, NULL);
// do the SetWindowExt() in the OnDraw, on mDC
and in the OnDraw(CDC* pDC) I implemented:
CMemDC mDC(pDC); <--- is an header of Keith Rule to prevent
flickering..
//
// I would expect SetWindowExtEx() on mDC here
//
CRect rect;
GetClientRect(&rect);
mDC->FillRect(rect, CBrush::FromHandle((HBRUSH)GetStockObject
(BLACK_BRUSH)));
CPen qPen(PS_SOLID, 1, RGB(0,0,0));
mDC->SelectObject(qPen);
mDC->PolyLine(&myQueuePoints[0], myQueuePoints.size());
qPen.DeleteObject();
You need to do a bitblt() to get the bitmapped data from mDC into pDC's
bitmap
thought I have scaled correctly but it doesn't show anything... (in
the OnEraseBkgnd event I changed the return to FALSE)... maybe am I
missing something about SetWindowExtEx or similia?....
Thanks a lot
Ciao, Luigi