1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| BOOL CFenetrePostItDlg::OnEraseBkgnd(CDC* pDC)
{
if (this->blnIconise)
{
// Fixe une brosse avec la couleur de fond choisie
//CBrush BkClrBrush(RGB(255, 128, 128));
// Sauvegarde lancienne brosse.
//CBrush* pOldBrush = pDC->SelectObject(&BkClrBrush);
COLORREF couleurCorps;
for(int i = 0; i < this->OPostit->GetLargeur(); i++)
{
CPen* oldPen;
int n = 255-((int)((double)(((double)i)/this->OPostit->GetLargeur())*191));
couleurCorps = RGB(32,n,255);
CPen pen(PS_SOLID, 1, couleurCorps);
pDC->MoveTo(i,0);
oldPen = pDC->SelectObject(&pen);
pDC->LineTo(i,this->OPostit->GetHauteur());
pDC->SelectObject(oldPen);
}
//pDC->SelectObject(pOldBrush);// restitue lancienne brosse.
}
else
{
// Fixe une brosse avec la couleur de fond choisie
//CBrush BkClrBrush(RGB(255, 128, 128));
// Sauvegarde lancienne brosse.
//CBrush* pOldBrush = pDC->SelectObject(&BkClrBrush);
CRect rect;
pDC->GetClipBox(&rect); // récupère la zone a effacer.
COLORREF couleurCorps, couleurReplie, couleurCoin, couleurTrait;
couleurReplie = RGB(32,32,160);
couleurCoin = RGB(0,0,0);
couleurTrait = RGB(0,0,0);
for(int i = 0; i < rect.Width(); i++)
{
double color;
CPen* oldPen;
int n = 255-((int)((double)(((double)i)/rect.Width())*191));
couleurCorps = RGB(32,n,255);
if ((rect.Width()-i)==40)
{
CPen pen(PS_SOLID, 1, couleurTrait);
pDC->MoveTo(i,0);
oldPen = pDC->SelectObject(&pen);
pDC->LineTo(i,39);
CPen pen2(PS_SOLID, 1, couleurCorps);
pDC->MoveTo(i,40);
oldPen = pDC->SelectObject(&pen2);
pDC->LineTo(i,rect.bottom);
pDC->SelectObject(oldPen);
} else if ((rect.Width()-i)<=40) {
int j = rect.Width()-i;
CPen pen(PS_SOLID, 1, couleurCoin);
pDC->MoveTo(i,0);
oldPen = pDC->SelectObject(&pen);
pDC->LineTo(i,40-(j+1));
CPen pen2(PS_SOLID, 1, couleurTrait);
pDC->MoveTo(i,40-j);
oldPen = pDC->SelectObject(&pen2);
pDC->LineTo(i,40-j);
CPen pen3(PS_SOLID, 1, couleurReplie);
pDC->MoveTo(i,40-(j-1));
oldPen = pDC->SelectObject(&pen3);
pDC->LineTo(i,39);
CPen pen4(PS_SOLID, 1, couleurCorps);
pDC->MoveTo(i,40);
oldPen = pDC->SelectObject(&pen4);
pDC->LineTo(i,rect.bottom);
pDC->SelectObject(oldPen);
} else {
CPen pen(PS_SOLID, 1, couleurCorps);
pDC->MoveTo(i,0);
oldPen = pDC->SelectObject(&pen);
pDC->LineTo(i,rect.bottom);
pDC->SelectObject(oldPen);
}
}
//pDC->SelectObject(pOldBrush);// restitue lancienne brosse.
}
return TRUE;
} |