Программирование >>  Процедурные приложения 

1 ... 112 113 114 [ 115 ] 116 117 118 ... 150


EDITTEXT DM XLABEL,

LTEXT y-axis EDITTEXT.DM YLABEL,

75, 60,8, NOT WS GROUP

Bar #1 Bar #2 Bar #3 Bar #4 Bar #5 Bar #6 Bar #7 Bar #8 Bar #9 Bar #10: EDITTEXT DM P1, EDITTEXT DM P2, EDITTEXT DM P3, EDITTEXT DM P4, EDITTEXT DM P5, EDITTEXT DM P6, EDITTEXT DM P7, EDITTEXT DM P8, EDITTEXT DM P9,

LTEXT LTEXT LTEXT LTEXT LTEXT LTEXT LTEXT LTEXT LTEXT LTEXT

8, NOT

GROUP

8, NOT

GROUP

8, NOT

GROUP

8, NOT

GROUP

8, NOT

GROUP

NOT WS GROOP NOT WS GROUP NOT WS GROUP

CTEXT By William H. Murray and Chris H. Pappas ,

-1,28/ 28,144, 8

CTEXT (c)Copyright 1998 ,-1, 68,38, 83, 8 DEFPUSHBUTTON 0K , IDOK,

84, 55, 32, 14, WS GROUP

BARDLGBOX DIALOG DISCARDABLE 42,65526,223,209 STYLE WS POPUP I WS CAPTION

CAPTION Bar Chart Data

BEGIN

GROUPBOX Bar Chart Title: ,100, 5, 11,212,89,WSJTABSTOP

GROUPBOX Bar Chart Heights , 101, 5, 105, 212, 90,WSJTABSTOP

LTEXT Title: , -1,43,35,28,8, NOT WS GROUP

EDITTEXT DM TITLE, 75,30,137,12 LTEXT x-axis label: ,-1,15,55, 55,8, NOT WS GROUP

75,50,135, 12

label: ,-1,15, 75,70,135,12 -1,45,125, -1,45,140, -1,45,155, -1,45,170, -1,45,185,

-1,130, 125> 40,8,

-1,130, 140, 40,8, -1,130, 155, 40,8, -1,130, 170,40,8, NOT WS GROUP -1,130, 185, 45,8, NOT WS GROUP 90,120, 30,12 90,135,30, 12 90,150, 30,12 90,165,30, 12 90,180, 30,12 180, 120, 30,12 180, 135, 30,12 180, 150, 30,12 180, 165,30,12 EDITTEXT DM P10, 180, 180, 30,12 PUSHBUTTON 0K , IDOK, 54,195,24,14 END

PUSHBUTTON Cancel , IDCANCEL, 124, 195,34,14 #ifdef APSTUDIO INVOKED

1 TEXTINCLUDE DISCARDABLE BEGIN

resource.h\0 END

2 TEXTINCLUDE DISCARDABLE BEGIN #define APSTUDIO HIDDEN SYMBOLS\r\n #include windows.h \r\n #undef APSTUDIO HIDDEN SYMBOLS\r\n #include afxres.h \r\n \0 END

3 TEXTINCLUDE DISCARDABLE BEGIN

\r\n

\0 END

#endif APSTUDIO INVOKED



#endif Ресурсы для английского ( США) языка

Ниже приведен текст файла BARCHART.CPP.

barchart.cpp

Построение гистограмм.

#include <afxwin.h> #include <string.h> #include <math.h> #include <stdlib.h>

#include barchartr.h идентификаторы ресурсов #include barchart.h #define maxnumbar 10

char szTString[80] = (barchart title area) ;

char szXString[80]= x-axis label ;

char szYString[80] = y-axis label ;

int iBarSize[maxnumbar] = {20,10, 40, 50};

int m cxClient, m cyClient;

CTheApp theApp;

CMainWnd::CMainWnd() {

Create(AfxRegisterWndClass(CS HREDRAW CS VREDRAW,LoadCursor(NULL, IDC CROSS),

(HBRDSH)GetStockObject (WHITE BRUSH) , NULL) , Bar Chart Application

with the MFC , WS OVERLAPPEDWINDOW, rectDefault, NULL, BarMenu );

void CMainWnd::OnSize(OINT, int x, int y) (

m cxClient = x;

m cyClient = y; )

void CMainWnd::OnPaint()

CPaintDC dc(this); static DWORD dwColorflO] = { RGB(0,0, d), черный

RGB(245,0, 0), красный RGB(0,245,0), зеленый RGB(0,0, 245), синий

RGB(245,245, 0), желт1й

RGB(245,0, 245), пурпурный RGB(0,245,245), голубой RGB(0,80,80), голубовато-серый

RGB(80,80,80), темно-серый RGB(245, 245, 245)}; белый

CFont newfont; CFont* oldfont; CBrush newbrush; CBrush* oldbrush;

int i, iNBars, iBarWidth, iBarMax; int ilenMaxLabel; int xl,x2,yl,y2;

int iBarSizeScaled[maxnumbar] ; char sbuffer[10],*strptr; iNBars = 0;

for(i=0;i < maxnumbar; i++){ iffiBarSize [i]!= 0) iNBars++; 346



iBarWidth = 400/iNBars;

Поиск столбца, имеющего максимальную высоту

iBarMax = iBarSize[0]; for(i=. 0; i < iNBars;

if(iBarMax < iBarSize[i])iBarMax = iBarSize [i];

Преобразование максимального значения по у встроку

strptr = itoa(iBarMax, sbuffer, 10); ilenMaxLabel = strlen(sbuffer);

Масштабирование столбцов в массиве.

Максимальная высота столбца - 270.

for(i= 0; i < iNBars; i++)

iBarSizeScaled[i] = iBarSize[i]* (270/iBarMax);

Задание режима отображения и создание области просмотра

dc.SetMapMode(MM ISOTROPIC) ; dc.SetWindowExt(640,400);

dc.SetViewportExt(m cxClient, m cyClient); dc.SetViewportOrg(0, 0) ;

Выводтекставокно, еслидлянегохватаетместаif(m cxClient > 200) (

newfont.CreateFont(12,12, 0, 0, FW BOLD,

FALSE, FALSE, FALSE, OEM CHARSET, OOT DEFAULT PRECIS,

CLIP DEFAULT PRECIS, DEFAOLT QUALITY, VARIABLE PITCH FF ROMAN, Roman );

oldfont = dc.SelectObject(Snewfont); dc.TextOut((300-(strlen(szTString)*10/2) ) , 15,szTString, strlen(szTString)); dc.TextOut((300-(strlen(szXString)* 10/2)) ,

365,szXString, strlen(szXString));

dc.TextOut((90- ilenMaxLabel*12), 70,strptr, ilenMaxLabel);

удалениеобъекташрифтаdc.SelectObject(oldfont); newfont.DeleteObject(),

newfont.CreateFont(12,12,900,900,FW BOLD,

FALSE, FALSE,.FALSE, OEM CHARSET, OUT DEFAULT PRECIS,

CLIP DEFAULT PRECIS, DEFAULT QUALITY, VARIABLE PITCH FF ROMAN,

Roman );

oldfont = dc.SelectObject(Snewfont) ;

dc.TextOut(50,200+ (strlen(szXString)*10/2), szYString,

strlen(szYString));

удаление объекта шрифта

dc.SelectObject(oldfont) ;

newfont.DeleteObj ect() ; }

Рисование осей координат

dc.MoveTo(99,49);

dc.LineTo(99,350);

dc.LineTo(500, 350);

dc.MoveTo(99,350);

Начальные значения

xl = 100; yl = 350;

x2 = xl + iBarWidth; Рисование столбцов for(i=0;i < iNBars; i++) { newbrush.CreateSolidBrush(dwColor[i]), oldbrush = dc.SelectObject(Snewbrush)

y2 = 350 - iBarSizeScaled[i]; dc.Rectangle(xl,yl,x2, y2);

xl = x2;



1 ... 112 113 114 [ 115 ] 116 117 118 ... 150

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика