Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 22

Создание линейной диаграммы

17.05.2012, 15:45. Показов 4912. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые, товарищи! Здраствуйте! Прошу помощи у Вас. Требуется создать линейную диаграмму, у меня возникли трудности, никак не получается ее нарисовать в системе координат, а так же сделать подписи. Требуется самая простая диаграмма, но с подписями. Мои наработки ниже. Прошу откликнуться на мою просьбу. Заранее Спасибо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
    
#include <windows.h>
#include <string.h>
#include <fstream>
#include <stdio.h>
#include <iostream>
 
int numData;
int res;
FILE* pFile;
int str[1];
float * buffer;
float * buffer2;
int i[10]={365, 430, 495, 560, 625, 690,755, 820, 885, 950};
int j;
 
 
 
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
TCHAR szProgName[] = TEXT("LineDiag");
 
int WINAPI WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst, LPSTR lpszCmdLine, int nCmdShow)
{
WNDCLASS wndClass;
HWND hWnd;
MSG message;
 
wndClass.lpszClassName = szProgName;
wndClass.hInstance = hCurrentInst;
wndClass.lpfnWndProc = WndProc;
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndClass.lpszMenuName = 0;
wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
 
if (!RegisterClass(&wndClass))
return 0;
 
hWnd = CreateWindow(
szProgName,
TEXT("LineDiag"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hCurrentInst,
NULL
);
 
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
 
while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
 
return message.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rc;
 
switch (nMessage)
{
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
MoveToEx (hDC, 300, 650, NULL);
LineTo (hDC, 300, 100);
LineTo (hDC, 295, 115);
MoveToEx (hDC,300, 100, NULL);
LineTo (hDC,305, 115);
MoveToEx (hDC, 300, 650, NULL);
LineTo (hDC, 950, 650);
LineTo (hDC, 935, 645);
MoveToEx (hDC, 950, 650, NULL);
LineTo (hDC, 935, 655);
MoveToEx (hDC, 300, 650, NULL);
pFile = fopen ("input.txt","r");
for (int i=0; i<1000; i++)
{
res=fscanf(pFile,"%f %f",&str[10]);
if (res>0) numData++;
}
rewind (pFile);
buffer = (float*) malloc (sizeof(float)*numData);
buffer2 = (float*) malloc (sizeof(float)*numData);
for (int i=0; i<numData; i++)
{
fscanf(pFile,"%f %f", &buffer[i], &buffer2[i]);
}
for (int j=0; j<numData; j++)
{
    fscanf(pFile, "%f %f", &buffer[j], &buffer2[j]);
}
fclose (pFile);
//HPEN NewPen=CreatePen (PS_SOLID, 2, RGB(255,0,0)); 
//SelectObject
 
for (int j=0; j<numData; j++)
LineTo(hDC,   i[j], buffer[j]);
 
EndPaint(hWnd, &ps);
 
break;
 
case WM_DESTROY:
PostQuitMessage(0);
break;
 
default:
return DefWindowProc(hWnd, nMessage, wParam, lParam);
}
 
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2012, 15:45
Ответы с готовыми решениями:

Создание линейной структуры данных типа очереди или стека
Здравствуйте, форумчане. Прошу помочь с заданием:

Создание диаграммы в C++ Builder 6.0
Люди помогите решить такую задачку. Нужно создать простую линейную диграмму Chart в главном окне. ОсьУ Кол-во линий=списку годов,...

Изменение линейной диаграммы
Привет. Есть обычная линейная диаграмма по оси х отложены числа 1, 2, 3, 4 и т д, по оси у некоторые значения. Как можно в оси х заменить...

24
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33479 / 21577 / 8250
Регистрация: 22.10.2011
Сообщений: 37,039
Записей в блоге: 12
31.05.2012, 21:42
Студворк — интернет-сервис помощи студентам
V.I.P, у тебя неправильная последовательность обработчиков события. Я ж написал в IDM_EXIT, что "проваливаемся на WM_DESTROY", то есть, как минимум WM_DESTROY надо поставить сразу после WM_COMMAND, так, как это было у меня в коде из 15-го поста.
Цитата Сообщение от Digit@ll Посмотреть сообщение
SetMenu (hWnd, hMenu);
Не надо тут SetMenu, если бы надо было - я б написал. Если я выдрал кусок кода из работающего проекта, с отображаемой менюшкой, и в нем не было SetMenu - это значит что? Либо компилятор умеет предсказывать, куда надо подставить вызов этой функции, либо (что более вероятно) указания хендла созданного меню 9-м параметром CreateWindow достаточно. Конечно, этот момент ТС опять не заметил.

Добавлено через 1 минуту
Цитата Сообщение от V.I.P Посмотреть сообщение
Где должна располагаться функция DestroyMenu (hWnd); ?
если создавалось меню до создания окна - то удалять его надо как можно позже - т.е., в обработчике WM_DESTROY. Логично?
1
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 22
31.05.2012, 21:53  [ТС]
UI, окей, поставил как Вы сказали: WM_COMMAND сразу перед WM_DESTROY.
Меню так и не появилось, что я не доделал?
Однако какой должны быть функции открытия любого файла и чтения из него? Как она выглядит? Каков ее синтаксис?
Предыдущая, связанная с input.txt в корне проекта явно не подходит.
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
31.05.2012, 22:03

Не по теме:

Цитата Сообщение от UI Посмотреть сообщение
Не надо тут SetMenu
Ну да, 9 параметр всё решает. OK


GetOpenFileName - диалог открытия файлов, примеры найдешь.
0
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 22
31.05.2012, 22:22  [ТС]
Это уже вопрос рабочего меню, у меня еще нет даже нерабочего. Его просто нет.
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
31.05.2012, 22:34
Цитата Сообщение от UI Посмотреть сообщение
указания хендла созданного меню 9-м параметром CreateWindow достаточно
V.I.P, ну? К #18 посту.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2012, 22:34

Создание круговой диаграммы брать данные для диаграммы из dataGridView1 ?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Построение линейной диаграммы для наблюдения за сменой курса валют
Доброго времени суток друзья. Помогите с задачей пожалуйста. Так сложилось что с JAVA я не знаком чуть больше чем полностью. Уповаю на...

Создание линейной нейронной сети
Нужен пример в GUI matlab создание и реализация линейной нейронной сети

Создание программ не линейной структуры
Доброе время суток, очень нужно решить 2 задачи, буду огромно благодарен за помощь: 1) Задано натуральное число, диапазон значений слово....

Создание er диаграммы
Доброго времени суток! Сделал еr диаграмму в sql по нижеописанной предметной области, хотел узнать у экспертов правильно ли сделал? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru