TigrouMeow Vive le Rhum et les Gibsons ;) | SquiZZ a écrit :
on veut bien aider mais sans avoir plus de code, ca tient plus du tirage de cartes ou de la boule de cristal.
|
Bon d'accord je balance du code alors Vous allez surement pas trouver ça très propre et très bien mais c'est la première fois que je fait des MFC... voilà le code.
Code :
- void CHeatDiffusionView::DrawCase(CDC *pDC, int x, int y, int pStyle, COLORREF color)
- {
- CPen *pOldPen;
- CBrush *pOldBrush;
- CPen colorPen(PS_SOLID, 0, color);
- CBrush colorBrush(color);
- pDoc = GetDocument();
- pOldBrush = pDC->SelectObject(&colorBrush);
- pOldPen = pDC->SelectObject(&colorPen);
- pDC->SetBkColor(color);
- x *= pDoc->_caseSize;
- y *= pDoc->_caseSize;
- switch (pStyle)
- {
- case P_WALL:
- pDC->SelectObject(wallBrush);
- break;
- case P_FIRE:
- pDC->SelectObject(fireBrush);
- break;
- case P_FRESH:
- pDC->SelectObject(freshBrush);
- break;
- }
- pDC->Rectangle(x - 1, y - 1, x + pDoc->_caseSize + 1, y + pDoc->_caseSize + 1);
- pDC->SelectObject(pOldPen);
- pDC->SelectObject(pOldBrush);
- }
- void CHeatDiffusionView::DrawCase(CDC *pDC, int x, int y, int pStyle)
- {
- CBrush *pOldBrush;
- CPen *pOldPen;
- pDoc = GetDocument();
- x *= pDoc->_caseSize;
- y *= pDoc->_caseSize;
- pDC->SetBkColor(RGB(200, 200, 200));
- pOldBrush = pDC->SelectObject(clearBrush);
- pOldPen = pDC->SelectObject(whitePen);
- switch (pStyle)
- {
- case P_WALL:
- pDC->SelectObject(wallBrush);
- break;
- case P_FIRE:
- pDC->SelectObject(fireBrush);
- break;
- case P_FRESH:
- pDC->SelectObject(freshBrush);
- break;
- }
- pDC->Rectangle(x, y, x + pDoc->_caseSize + 1, y + pDoc->_caseSize + 1);
- pDC->SelectObject(pOldBrush);
- pDC->SelectObject(pOldPen);
- }
- void CHeatDiffusionView::OnDraw(CDC* dc)
- {
- int c, d;
- int r, v, b;
- CFont *pOldFont;
- CMemDC pDC(dc, 0);
- pDoc = GetDocument();
- ASSERT_VALID(pDoc);
- if (!pDoc)
- return;
- if (pDoc->_affTemp)
- pOldFont = pDC.SelectObject(stdFont);
- for (c = 0; c < pDoc->_heatDiff.GetSizeX(); c++)
- for (d = 0; d < pDoc->_heatDiff.GetSizeY(); d++)
- {
- if (pDoc->_modeAff == MA_SIMULATION && pDoc->_heatDiff.GetCaseColor(c, d, r, v, b) == true)
- {
- DrawCase(&pDC, c, d, pDoc->_heatDiff.GetCase(c, d), RGB(r, v, b));
- if (pDoc->_affTemp)
- {
- CString str;
- str.Format("%d", pDoc->_heatDiff.GetCaseTemp(c, d));
- pDC->TextOut(c * pDoc->_caseSize, d * pDoc->_caseSize, str, str.GetLength());
- }
- }
- else if (pDoc->_modeAff == MA_DESIGN)
- DrawCase(&pDC, c, d, pDoc->_heatDiff.GetCase(c, d));
- }
- if (pDoc->_affTemp)
- pDC->SelectObject(pOldFont);
- }
|
Voilà, je pense que ça vous suffira à me dire "oh que c'est crade" (ou peut etre pas finalement ?..) et à trouver la solution
Merci encore.
|