Kant rundt om billede. CBitMap
Hejsa,I spørgsmål: http://www.eksperten.dk/spm/530891
fik jeg hjælp til at lave noget dobbelt buffering, min funktion endte med at se sådan ud,
void CTemperatureCtrl::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect cRect;
GetClientRect(cRect);
// Create a memory DC and a "bitmap" for it to draw on
CDC MemoryDc;
MemoryDc.CreateCompatibleDC(&dc);
CBitmap Bitmap;
Bitmap.CreateCompatibleBitmap(&dc, cRect.Width() - 1, cRect.Height() - 1);
MemoryDc.SelectObject(&Bitmap);
// Draw whatever on this memory dc
PaintTermometer(&MemoryDc);
PaintLines(&MemoryDc);
PaintTemp(&MemoryDc);
// BitBlt it onto the real DC, ie. the screen
dc.BitBlt(0, 0, cRect.Width(), cRect.Height(), &MemoryDc, 0, 0, SRCCOPY);
// Do not call CStatic::OnPaint() for painting messages
}
Det virker også helt efter hensigten, mit spørgsmål er:
Hvis jeg laver:
Bitmap.CreateCompatibleBitmap(&dc, cRect.Width() - 1, cRect.Height() - 1);
uden de 2 ( - 1) så kommer der en sort kan i bunden og i venstre side, dette sker ikke hvis jeg trækker en fra i størrelsen, HVORFOR????? jeg starter med at male hele baggrunden grå med:
CRect cRect;
GetClientRect(&cRect);
pDC->SelectObject(&cPenNull2);
pDC->SelectObject(&cBrushGrey);
pDC->Rectangle(cRect);
håber på svar.
mvh
XenoCypraZ