|
Программирование >> Процедурные приложения
RGB(0,0, 255), синий RGB(255,255, 0), желт1й RGB(255,0, 255), пурпурный RGB(0,255,255), голубой RGB(127,127, 127), серый RGB(255,255, 255)}; белый short xcoord; POINT polylpts[4],polygpts[5] ; CBrush newbrush; CBrush* oldbrush; CPen newpen; CPen*oldpen; CPaintDC dc(this); рисование толстой черной диагональной линии newpen.CreatePen(PS SOLID, 6, dwColor[0]); oldpen = dc.Selectobject(Snewpen); dc.MoveTo(0, 0) ; dc.LineTo(640,430); dc.TextOut(70,20, <-diagonal line ,15); удаление пера dc.Selectobject(oldpen); newpen.DeleteObj ect() ; рисование синей дуги newpen.CreatePen(PS DASH, 1, dwColor[3]); oldpen = dc.Selectobject(Snewpen) ; dc.ArcdOO,100, 200, 200, 15X), 175, 175,150), dc.TextOut (80,180, small -arc-> , 11); удаление пера dc.SelectObjecb(oldpen); newpen.DeleteObject(); рисование зеленого сегмента с толстым контуром newpen.CreatePen(PS SOLID, 8, dwColor[2]); oldpen = dc.Selectobject(Snewpen); dc.Chord(550, 20,630,80, 555, 25,625,70); dc.TextOut(485,30, chord-> , 7) ; удаление пера dc.Selectobject(oldpen); newpen.DeleteObject() ; рисование эллипса и заливка его краснымцветом newpen.CreatePen(PS SOLID, 1, dwColor[1]); oldpen = dc.Selectobject(Snewpen); newbrush.CreateSolidBrush(dwColor[1]); oldbrush = dc.Selectobject(Snewbrush) ; dc.Ellipse(180, 180, 285, 260); dc.TextOut(210,215, ellipse ,7); удаление кисти dc.SelectObject(oldbrush) ; newbrush.DeleteObject(); удаление пера dc.SelectObject(oldpen) ; newpen.DeleteObj ect{); рисование круга и заливка его синим цветом newpen.CreatePen(PS SOLID, I, dwColor[3]); oldpen = dc.SelectObject(Snewpen); newbrush.CreatesolidBrush(dwColor[3]) ; oldbrush = dc.SelectObject(Snewbrush); dc.Ellipse(380,180, 570, 370); dc.TextOut(450,265, circle ,6); удаление кисти dc.SelectObject(oldbrush) ; newbrush.DeleteObject(); удаление пера dc.SelectObject(oldpen); newpen.DeleteObject() ; рисование черного сектора и заливка его зеленым цветом newpen.CreatePen(PS SOLID, I, dwColor[0]); oldpen = dc.SelectObject(Snewpen); newbrush.CreatesolidBrush(dwColor[2]); oldbrush = dc.SelectObject(Snewbrush); dc.Pie(300,50,400, 150, 300, 50,300, 100); dc.TextOut(350,80, <-pie wedge , 11); удаление кисти dc.SelectObject(oldbrush); newbrush.DeleteObject(); удаление пера dc.SelectObject(oldpen); newpen.DeleteObj ect() ; рисование черного прямоугольника и заливка его серым цветом newbrush.CreateSolidBrush(dwColor[7]) ; oldbrush = dc.SelectObject(Snewbrush); dc.Rectangle(50,300, 150, 400); dc.TextOut(160,350, <-rectangle , 11); удаление кисти dc.SelectObject(oldbrush); newbrush.DeleteObject() ; рисование черного закругленного прямоугольника изаливка его синим цветом newbrush.CreateHatchBrush(HS CROS5, dwColor[3]); oldbrush = dc.SelectObject(Snewbrush) ; dc.RoundRect(60, 310, 110,350, 20,20); dc.TextOut(120,310, <-rounded rectangle , 24); удаление кисти dc.SelectObject(oldbrush); newbrush.DeleteObject(); рисование нескольких зеленых точек for(xcoord = 400; xcoord < 450; xcoord += 3) dc.SetPixel(xcoord, 150, OL); dc.TextOut(455, 145, <-pixels , 8); рисование толстой ломаной линии пурпурного цвета newpen.CreatePen (PS SOLID, 3, dwColor [5-] ); oldpen = dc.SelectObject(Snewpen);
dc.Polyline(polylpts, 4); dc.TextOut(10,110, polyline , 8); удалениепера dc.SelectObject(oldpen); newpen.DeleteObject(); рисование голубого многоугольника изаливка его диагональной желтой штриховкой newpen.CreatePen(PS SOLID, 4, dwColor[6]); oldpen = dc.SelectObject(Snewpen); newbrush.CreateHatchBrush(HS FDIAGONAL, dwColor[4]); oldbrush = dc.SelectObject(Snewbrush);
dc.Polygon(polygpts, 5); dc.TextOut(70,210, <-polygon , 9) ; удаление кисти dc.SelectObject(oldbrush); newbrush.DeleteObject(); удаление пера dc.SelectObject(oldpen); newpen.DeleteObject(); } BEGIN MESSAGE MAP(CMainWnd, CFrameWnd) ON WM PAINT () END MESSAGE MAP() BOOL CgdiAApp::Initlnstance() { m jpMainWnd = new CMainWnd () ; m pMainWnd->ShowWindow(m nCmdShow) ; m pMainWnd->UpdateWindow(); return TRUE; Файл GDI.CPP В функции OnPaint( ) создается массив dwColor, в котором хранятся девять RGB-значений цветов для используемых кистей и перьев. static DWORD dwColor[9] = {RGB(0,0, 0), черный RGB(255, 0, 0), красный RGB(0,255, 0), зеленый RGB( О, О, 255), синий RGB(255,255, 0), желтый RGB(255, 0, 255), пурпурный RGB(0,255,255), голубой RGB(127,127, 127), серый RGB(255,255, 255)}; белый Классы CBrush и СРеn позволяют создавать объекты кистей и перьев, которые могут использоваться любыми функциями класса cdcи его потомков (классов, связанных с контекстами устройств). Кисти могут иметь сплошную и штриховую заливку, а также заливку с применением растрового узора. Перья рисуются сплошной (ps solid), штриховой (ps dash), пунктирной (ps dot), штрихпунктирной (ps dashdot) и штрихточечной (ps dashdotdot) линиями. Ниже показан синтаксис создания объектов кистей и перьев: CBrush newbrush; CBrush* oldbrush; CPen newpen;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |