Prezentare pe tema: "Diagrame cu ajutorul MFC: Microsoft Library Classes (MFC) în C ++, dezvoltat de Microsoft și conceput pentru a facilita dezvoltarea aplicațiilor GUI". - Transcriere:
1 grafice cu MFC
2 Microsoft Foundation Classes (MFC) este o bibliotecă C ++ dezvoltată de Microsoft menită să faciliteze dezvoltarea de aplicații GUI pentru Microsoft Windows utilizând un set bogat de clase de bibliotecă.
3 Creați un proiect de tip MFC Application Dialog bazat pe MFC într-o bibliotecă statică
4 În cel mai simplu caz, un program scris utilizând MFC conține două clase generate din clasele de ierarhie ale bibliotecii: clasa utilizată pentru a crea aplicația și clasa utilizată pentru a crea fereastra. clasa CTestGraphApp. publice CWinApp <…>; clasa CTestGraphDlg. publice CDialog <>;
5
6 Zona de desen Adaugă la elemente de dialog text static prin fereastra Properties pentru ai cere un ID unic IDC_GRAPH CStatic declara o variabilă de tip în caseta de dialog CStatic m_DrawArea clasa; Asociați variabila și elementul DDX_Control (pDX, IDC_GRAPH, m_DrawArea); în metoda DoDataExchange
7 Desenarea butonului Adăugare buton în caseta de dialog Creare metode care se numește la apăsarea butonului - Dați clic dublu pe butonul -Add Handler Event
Contextul dispozitivului CClientDC este o clasă care vă permite să afișați grafică în zona de lucru a unei ferestre. Desenarea are loc în așa-numitul context al dispozitivului. Ideea este: trageți pe un DC abstract. Dacă un DC este asociat cu o fereastră pe ecran, atunci desenarea va apărea în fereastră; dacă o asociați cu imprimanta - apoi cu imprimanta; dacă cu un fișier - că, în consecință, într-un fișier. Dacă desenarea apare în interiorul funcției OnDraw, atunci un indicator pentru aplicația DC deja creată este trecut la parametrul funcției, astfel încât să puteți folosi pur și simplu fără să vă faceți griji cu privire la crearea și ștergerea acesteia. Dacă desenul are loc într-o altă funcție (ca răspuns la un eveniment, de exemplu, atunci când este apăsat un buton), atunci acest context trebuie obținut. Aceasta se face astfel: CClientDC dc (this);
9 Desenarea graficului void CGraphDlg :: OnBnClickedButton1 () /Создаем контекст, в котором будем рисовать CClientDC dc(&m_DrawArea); //Узнаем размеры прямоугольника CRect rc; m_DrawGraphics.GetClientRect(&rc); int w = rc.Width(); int h = rc.Height(); int x_start = 10; int y_start = h-10; //Рисуем …>
10 // Desenați CPenul pnPenBlack (PS_SOLID, 1, RGB (0,0,0)); CPen * pOldPen = dc.SelectObject (pnPenBlack); dc.FillSolidRect (rc, RGB (255,255,255)); dc.MoveTo (x_start - 5, y_start); dc.LineTo (x_start + w-15, y_start); dc.MoveTo (x_start, y_start + 5); dc.LineTo (x_start, y_start-h + 15); CPen pnPenRed (PS_SOLID, 1, RGB (255,0,0)); dc.SelectObject (pnPenRed); dc.MoveTo (x_start, y_start); pentru (int i = 3; i
11