yasbai Ответов: 2

Высокоскоростное управление диаграммами-исключите ошибку при создании осей


CChartStandardAxis* pBottomAxis =
	m_ChartCtrl1.CreateStandardAxis(CChartCtrl::BottomAxis);
CChartStandardAxis* pLeftAxis =
	m_ChartCtrl1.CreateStandardAxis(CChartCtrl::LeftAxis);
pBottomAxis->SetAutomaticMode(CChartAxis::FullAutomatic);
pLeftAxis->SetAutomaticMode(CChartAxis::FullAutomatic);

я написал их в OnInitDialog (), а затем построил&excute,вот в чем проблема, когда мой курсор перемещается по пользовательскому элементу управления, я получаю следующую ошибку
<img src="https://s1.ax1x.com/2018/04/13/CEHirD.png" alt="CEHirD.png" border="0" />


Что я уже пробовал:

после удаления кода об осях ошибка не возникает

2 Ответов

Рейтинг:
2

Jochen Arndt

Пожалуйста, не размещайте ссылки на изображения, содержащие сообщения об ошибках. Просто скопируйте и вставьте текст ошибки.

То, что ваше приложение выходит из строя, вероятно, не является источником создания осей. Без осей вы не сможете добавлять данные в элемент управления. Поэтому при удалении кода последующие вызовы для добавления данных ничего не сделают, и элемент управления будет пуст.

Решение для решения этой проблемы заключается в использовании отладочной сборки вашего приложения и элемента управления диаграммой и запуске ее из отладчика шаг за шагом, наблюдая за окном отладки для сообщений трассировки. Когда приложение остановится, проверьте стек вызовов.

Вы также можете закомментировать другие части вашего кода, чтобы узнать, какие из них могут быть задействованы.


Рейтинг:
1

yasbai

Я нахожу решение во введении контроля.

Цитата:
Элемент управления использует динамические приведения внутренне, поэтому RTTI (RunTime Type Information) должен быть включен, иначе, вероятно, произойдет сбой. RTTI не включен по умолчанию для VC6, поэтому для его включения откройте вкладку project settings -> "C/C++"- > "C++ language" и убедитесь, что установлен флажок "Enable Run-Time Type Information (RTTI)".