Re: Simple drawing application fails
Sebbie wrote:
Hi,
I have a simple application where I draw som lines and circles in two
funtions called by the OnPaint(). However it fails. One function draws an
'X' and the other 'O' in the ClientDc. The problem is that I only get som '/'
instead of an 'X' when drawing an 'X'?
Does this has something to do with which device context I use? In the
turorial I have the onPaint handler uses the CPaintDc dc and passes the dc as
a pointer to the functions meanwhile in my code I use the CClientDC locally
in the function?
This is my pseudo code:
OnPaint()
{
drawX();
}
drawX()
{
CClientDC dc (this);
CPen pen;
CPen* pOldPen;
CRect rect = aRect[cellNbr];
ipen.CreatePen(PS_SOLID,4,RGB(125,125,125))
pOldPen = dc.SelectObject(&pen);
rect.DeflateRect(10,10,10,10);
dc.MoveTo(rect.top, rect.left);
dc.LineTo(rect.bottom, rect.right);
dc.MoveTo(rect.top, rect.right);
dc.LineTo(rect.left, rect.bottom);
dc.SelectObject(pOldPen);
}
The way you are doing it is a disaster. It causes an endless loop of
continuous repainting.
OnPaint _must_ use CPaintDC. This is elementary lesson 1 in painting
windows.
--
Scott McPhillips [MVP VC++]