Просто быстрый вопрос.
Я ищу простую ленточную диаграмму (также называемую графиком), похожую на представление «Производительность» диспетчера задач Windows. И нашли несколько, но все они полагаются на MFC или .NET :(
Я надеюсь, что кто-то здесь может иметь или знать, где взять простой элемент управления Win32 ленточной диаграммы, который не является MFC.
Спасибо.





Если вы нашли хороший элемент управления MFC, возможно, вам лучше всего было бы преобразовать код самостоятельно в чистый Win32 - в конце концов, MFC - это тонкая оболочка вокруг Win32 API. Ради интереса, как называется обнаруженный вами элемент управления MFC?
Я не думаю, что в библиотеке общих элементов управления Win32 есть стандартный. Вам придется либо использовать чужую библиотеку виджетов, либо свернуть свою собственную с помощью GDI для рисования графиков. Наверное, не так уж и сложно свернуть свой собственный - просто создайте элемент управления растровым изображением и устанавливайте изображение каждый раз, когда ваши данные обновляются до графика, который вы рисуете в памяти.
Рисование непосредственно на вашем DC вызовет мерцание. Хотя подход «растрового изображения» немного странный ИМО, для настраиваемого элемента управления MFC вам необходимо обрабатывать WM_PAINT, создавать растровое изображение в памяти и, по крайней мере, рисовать в DC памяти.
Если вам нужно выбрать собственный маршрут, посмотрите на вызов GDI ломаной линии. Это может нарисовать для вас всю линию за один звонок.
Я работаю над системой, которая рисует диаграммы с помощью специального кода (без сторонних элементов управления, все Win32 GDI). Звучит очень сложно, но не так уж плохо.
Немного математики для сопоставления точек из вашего координатного пространства с контекстом устройства, рисования линий сетки / фона и Ployline. Сделанный! ;)
Черт возьми, вы можете использовать режимы сопоставления GDI, чтобы упростить математику (но я бы не стал).
Несколько месяцев назад у меня возникла та же проблема: я пытался найти существующую реализацию библиотеки мониторинга производительности, которая похожа на диспетчер задач Windows. Однако, поскольку я не смог найти существующую библиотеку, работающую на нескольких платформах (не зависящих от MFC или .NET), я решил создать свою собственную библиотеку :-)
Сегодня я только что выпустил бета-версию этой библиотеки и сделал ее доступной как проект с открытым исходным кодом. Посмотрите это здесь: http://code.google.com/p/qw-performance-monitoring/
Сообщите мне, если это будет полезно. Я все еще провожу тестирование, чтобы убедиться, что все функции этой библиотеки работают в Mac, Linux и Windows. Как только я закончу тестирование, я выпущу стабильный выпуск. В настоящее время пользуйтесь этой бета-версией :-)
Это только для Какао. Есть ли у вас планы по поддержке Win32 api?
Взгляните на эту удивительную библиотеку с открытым исходным кодом: http://mctrl.sourceforge.net
Я думаю, что это кажется излишним. Если мы говорим о Win32 GDI, то нет необходимости в «растровом элементе управления». Просто обработайте сообщение с краской и получите DC, втяните его!