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

1 ... 98 99 100 [ 101 ] 102 103 104 ... 150


Круговые диаграммы широко применяются в коммерческих приложениях при создании различного рода презентаций. В представленной ниже программе будут объединены многие приемы, рассмотренные в этой и предыдущей главах. В частности, в программе задействованы меню и разработанные нами диалоговые окна Aboutи PieChartData. В окне ввода данных пользователю будет предложено задать до десяти значений, определяющих размеры секторов. На основании введенных целочисленных значений будут вычислены угловые размеры секторов в пропорции к общему размеру круга - 360 градусов. Минимальный размер сектора - 1 градус. Для закрашивания секторов определен массив IColor[] с набором цветов. Пользователь может также ввести подпись к диаграмме.

Для работы над данным приложением необходимо иметь четыре файла: PIE.H, PIE.RC, PIE.Cи PIE.CUR. Последний, содержащий изображение указателя мыши, вы можете разработать самостоятельно с помощью редактора ресурсов.

Ниже показан текст файла заголовков PIE.H, в котором содержатся идентификаторы команд меню и элементов управления диалоговых окон:

#define

IDM ABOUT

#define

IDM INPUT

#define

IDM EXIT

#define

DM TITLE

#define

DM P1161

#define

DM P2162

#define

DM P3163

#define

DM P4164

#define

DM P5165

#define

DM P6166

#define

DM P7167

#define

DM P8168

#define

DM P9169

#define

DM P10170

В файле ресурсов PIE.RC описываются меню и два диалоговых окна (более подробно об этих ресурсах говорилось в предыдущей главе), а также ряд вспомогательных ресурсов.

#include resource.h

#define APSTUDIO READONLY SYMBOLS

/

#include pie.h

#define APST0DIO HIDDEN SYMBOLS

#include windows. h

tundef APSTUDIO HIDDEN SYMBOLS

tundef APSTUDIO READONLY SYMBOLS

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

#if !defined(AFX RESOURCE DLL) defined (AFX TARG END) -

tifdef WIN32

LANGUAGE LANG ENGLISH, SUBLANG ENGLISH US tpragma code page (1252)

#endif WIN32

Указатель м1ши

PIECURSOR CURSOR DISCARDABLE pie.cur

Меню



I WS CAPTION I WS SYSMENU

PIEMENU MENU DISCARDABLE BEGIN POPUP Pie Chart Data BEGIN

MENUITEM About... , IDM ABOUT MENUITEM Input... , IDM INPUT

MENUITEM Exit , IDM EXIT

END END

/

Диалоговые окна

ABOUTDLGBOX DIALOG DISCARDABLE 50,300, 180,

STYLE DS MODALFRAME WS POPUP WS VISIBLE

CAPTION About

FONT 8, MS Sans Serif

BEGIN

CTEXT Microsoft GPie Chart Program , -1,3, 29,176,10

CTEXT by William H. Murray and Chris H. Pappas , -1, 3, 16,176,10

PUSHBUTTON ОК , IDOK, 74,51,32,14

PIEDLGBOX DIALOG DISCARDABLE 93,37,195,159 STYLE DS MODALFRAME WS POPUP I WS VISIBLE CAPTION Pie Chart Data FONT 8, MS Sans Serif BEGIN

GROUPBOX Chart Title: ,100, 5, 3, 182, 30, GROUPBOX Pie Wedge Sizes: ,101, 3, 34,187,

LTEXT Title: , -1,10,21,30,8 EDITTEXT DMJTITLE, 40,18,140, 12

WS CAPTION WS SYSMENU

WSJTABSTOP 95,WS TABSTOP

LTEXT Wedge #1 LTEXT Wedge #2 LTEXT Wedge #3 LTEXT Wedge t4 LTEXT Wedge #5 LTEXT Wedge #6 LTEXT Wedge #7 LTEXT Wedge #8 LTEXT Wedge #9 LTEXT Wedge #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, EDITTEXT DM P10, PUSHBUTTON ОК ,

-1, -1, -1, -1, -1, -1, -1, -1, -1,

10, 10, 10, 10, 10, 106,50, 106,65, 106,80, 106,95,

50, 65, 80, 95, 110,

-1,102, 110,

40,8, NOT WS GROUP 40,8. NOT WS GROUP 40, 8, NOT WS GROUP

40, 8, NOT WS GROUP 40,8, NOT WS GROUP 40,8, NOT WS GROUP 40,8. NOT WS GROUP 40,8, NOT WS GROUP 40, 45,

, NOT WS GROUP NOT WS GROUP

55, 55, 55, 55, 55, 150, 150,

45, 60, 75, 90, 105, 44, 61,

30,12 30, 12 30, 12 30, 12 30, 12 30,12

30,12

150, 76, 30,12 149,91, 30,12 149,106,30, 12 IDOK, 39,135, 24,14 PUSHBUTTON Cancel , IDCANCEL, 122, END

tifdef APSTUDIO INVOKED 304

136,34,14



/

1 TEXTINCLUDE DISCARDABLE BEGIN

resource.h\0 END

2 TEXTINCLUDE DISCARDABLE BEGIN

#include pie.h \r\n

#define APSTUDIO HIDDEN SYMBOLS\r\n

#include windows.h \r\n . #undef APSTUDIO HIDDEN SYMBOLS\r\n \0 END

3 TEXTINCLUDE DISCARDABLE BEGIN

\r\n \0 END

#endif APSTUDIO INVOKED

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

Следует помнить, что файл PIE.RC- это просто текстовый эквивалент описаний меню и диалоговых окон, созданных с помощью редактора ресурсов (см. предыдущую главу).

Файл PIE.С содержит основной текст программы. Несмотря на достаточно большой его размер, вы легко можете найти здесь знакомые блоки из файла SWP.C.

* PIE.С

* Создание круговых диаграмм.

#include <windows.h> #include <string.h> #include <math.h> #include pie.h #define radius 180 #define maxnurawedge 10

#define pi 3.14159265359

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); BOOL CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM); BOOL CALLBACK PieDlgProc(HWND, UINT, WPARAM, LPARAM);

char szProgName[] = ProgName ; char szApplName[] = PieMenu ; char szCursorName[] = PieCursor ;

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

unsigned int iwedgesize[maxnumwedge] = {5,20,10,15};

long IColor[maxnumwedge] = {OxOL,OxFFL, OxFFOOL, OxFFFFL,

OxFFOOOOL, OxFFOOFFL, OxFFFFOOL, OxFFFFFFL, OxSOSOL, Ox808080L);

int WINAPI WinMain(HINSTANCE hlnst, HINSTANCE hPrelnst,

LPSTR IpszCmdLine, int nCmdShow) {

HWND hWnd;

MSG IpMsg;

WNDCLASS wcApp;

wcApp.lpszClassName = szProgName; wcApp.hlnstance = hlnst; wcApp.lpfnWndProc = WndProc;

wcApp.hCursor = LoadCursor (hlnst, szCursorName);

wcApp.hlcon = Ldadlcon(hlnst,szProgName); wcApp.lpszMenuName

szApplName;

wcApp.hbrBackground = GetStockObject(WHITE BRUSH); wcApp.style = CS HREDRAW CS VREDRAW; wcApp.cbClsExtra = 0; wcApp.cbWndExtra 0; if (IRegisterClass(SwcApp)) return 0;



1 ... 98 99 100 [ 101 ] 102 103 104 ... 150

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