Метка «visual c++» - 2

Добрый день.

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

Решили мы, в зимнее время, устроить соревнования. Но, поскольку зимой гонки на открытом воздухе не организуешь, из-за погодных условий, придумали сделать соревнования в помещении, на велосипедах, закрепленных на месте (по принципу вело-тренажера).

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

Между собой соревновались бы 2 велосипедиста, а дистанция, которую они проезжают, проецировалась бы на экран, в режиме онлайн и было бы видно их прохождение трассы и скорость. Вот такая была поставлена задача и для ее реализации нужно было написать программу.
Читать полностью »

Добрый день.

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

Решили мы, в зимнее время, устроить соревнования. Но, поскольку зимой гонки на открытом воздухе не организуешь, из-за погодных условий, придумали сделать соревнования в помещении, на велосипедах, закрепленных на месте (по принципу вело-тренажера).

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

Между собой соревновались бы 2 велосипедиста, а дистанция, которую они проезжают, проецировалась бы на экран, в режиме онлайн и было бы видно их прохождение трассы и скорость. Вот такая была поставлена задача и для ее реализации нужно было написать программу.
Читать полностью »

В Visual C++ нет нормального стандартного способа отображения произвольных изображений на форме. Конечно, можно воспользоваться Picture Control, но изображение в нем можно установить только из ресурсов (насколько я помню), отсутствует возможность масштабирования, и нет поддержки скролбаров, если изображение выходит за границы контрола. Эти задачи и были реализованы в Image Control (часть кода была заимствована из другого контрола, но к сожалению источник уже затерялся, так как делал я это давно).

Называется класс CImageViewer, и наследуется он от CWnd. Изображение, отображаемое в контроле, хранится в члене класса m_image с типом CImage. Это позволит нам отображать изображения большинства популярных форматов. Основные методы класса:

— Установка изображения: void SetImage(CImage *image);
— Увеличить: void ZoomIn();
— Уменьшить: void ZoomOut();

Остальные методы и члена класса являются служебными.Читать полностью »

Из-за небольшого количества стандартных элементов управления в Visual C++ большинство компонентов приходится дописывать самостоятельно, особенно если вопрос касается отображения табличных данных. Для боле менее серьезных систем стандартного ListCtrl уже не хватает. Покопавшись в интернете можно найти немалое количество коммерческих grid’ов, но со своими кровными не очень хочется расставаться, тут на помощь и приходит замечательный компонент от Yuriy Zabroda VirtualGridCtrl.

Данный компонент был написан еще в Visual C++ 6.0, но и по сегодняшний день его можно успешно использовать в более свежих версиях Visual C++. На самом деле при выборе для себя грида я выдвигал несколько требований:

— многострочная шапка грида (без этого сложно представить хоть сколько-нибудь сложный отчет)
— отображение многострочного текста
— возможность подменить в строках таблицы стандартный CEdit на свои элементы управления
— возможность выделять цветом отдельные записи
— скорость работы

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

С остальными возможностями разберемся, используя небольшой пример.Читать полностью »

Эта статья – описание моих экспериментов по сборке модулей для Python. Мне понадобился высокоуровневый интерфейс к библиотеке LibRaw, притом в первую очередь под Windows.

Последний раз модуль для питона на C++ я писал в 2004 году, модуль был к мертворожденной (к счастью не мной) библиотеке ( я тупо продавал свои умения за зарплату). Естественно, навыки не закрепились. Помню, что SWIG сильно облегчил мне работу, поскольку нужен был объектный интерфейс, а «ручками» его писать ломало. Память у меня профессиональная – то есть избирательная и короткая, поэтому пришлось прыгать сначала.

Это статья только про настройку SWIG для Python под Windows. Писать же модули с использованием SWIG гораздо проще, чем всё настроить (кстати, у меня такое впечатление, что это парадигма современного программирования).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js