Научно-исследовательская лаборатория систем ЧПУ |
|||||||||||||||||||
|
|||||||||||||||||||
|
Класс CIndicatorАвторы: Мартинов Г. М.
|
ПРИМЕЧАНИЕ Класс написан с помощью MSVC 6.0 с использованием библиотеки MFC и может быть использован только в MFC проектах на языке C++. |
Рис. 5б. Стиль IND_STYLE_USE_DISTANCE установлен, используется расстояние между индикаторами.
Диаграмма классов, приведенная на рис. 6, иллюстрирует реализацию индикатора.
Использование индикатора рассмотрим на простейшем примере диалогового приложения.
Чтобы воспользоваться классом CIndicator, в первую очередь, необходимо включить в проект заголовочный файл indicator.h и файл indicator.lib для компоновки. Необходимо также, чтобы файл indicator.dll находился в каталоге с приложением.
Для использования класса CIndicator в своем приложении нужно проделать следующие шаги:
1. Добавить в класс диалога (или другого окна содержащего индикатор) объект класса CIndicator.
class CIndicatorTestDlg : public CDialog { private: // ... CIndicator m_Indicator1; // ... }; |
2. Установить параметры и состояния индикатора в методе OnInitDialog ().
BOOL CIndicatorTestDlg::OnInitDialog() { // ... // ------------ CIndicator Init --------------- m_indicator1.LoadBitMapImage (IDB_BITMAP1, 0); m_indicator1.LoadBitMapImage (IDB_BITMAP2, 1); m_indicator1.LoadString ("Off", 0); m_indicator1.LoadString ("Ready", 1); m_indicator1.ChangeIndicatorStyle (IND_STYLE_USE_BITMAP, TRUE); m_indicator1.m_nState = 0; // ... } |
3. Выполнить отрисовку индикатора в методе OnPaint:
void CIndicatorTestDlg::OnPaint(){ // ... CDC* pdc; pdc = GetDC (); CRect rIndBounds (25, 25, 450, 100); m_indicator1.Draw (pdc, rIndBounds); // ... } |
COLORREF m_ForeColor |
Цвет для вывода текста на индикаторе.
unsigned int m_nState |
Индекс текущего состояния индикатора.
int m_nDistance
|
Половина расстояния между индикаторами.
void ChangeIndicatorStyle(DWORD dwNewStyleFlag, BOOL blAdd = TRUE)
|
Установка стиля отрисовки индикатора.
Параметры:
dwNewStyleFlag - изменяемый флаг индикатора. Может принимать следующие значения:
IND_STYLE_DRAW_TEXT - вывод текста на индикаторе;
IND_STYLE_USE_DISTANCE - использование расстояния между индикаторами;
IND_STYLE_DRAW_EDGE - вывод рамки вокруг индикатора;
IND_STYLE_USE_BITMAP - использование картинки в качестве фона индикатора.
blAdd - если TRUE, то флаг устанавливается, иначе сбрасывается.
const DWORD& get_IndicatorStyle() const |
Возвращает стиль индикатора.
BOOL LoadString(UINT nStringResourceID, int nStateIndex)
|
Загружает текст для состояния индикатора из ресурсов приложения.
Параметры:
nStringResourceID - идентификатор ресурса.
nStateIndex - номер состояния при котором текст будет выводиться.
Возвращаемое значение:
TRUE, если текст загрузился успешно, иначе FALSE.
BOOL LoadString(CString String, int nStateIndex)
|
Загружает текст для состояния индикатора из строки.
Параметры:
String - строка, содержащая текст.
nStateIndex - номер состояния при котором текст будет выводиться.
Возвращаемое значение:
TRUE, если текст загрузился успешно, иначе FALSE.
BOOL LoadBitMapImage(LPCTSTR lpszBitmapFileResource, int nStateIndex)
|
Загружает картинку для состояния индикатора из файла.
Параметры:
lpszBitmapFileResource - имя файла.
nStateIndex - номер состояния для которого эта картинка будет использоваться.
Возвращаемое значение:
TRUE, если картинка загрузилась успешно, иначе FALSE.
BOOL LoadBitMapImage(UINT nBitmapResourceID, int nStateIndex)
|
Загружает картинку для состояния индикатора из ресурсов приложения.
Параметры:
nBitmapResourceID - идентификатор ресурса.
nStateIndex - номер состояния для которого эта картинка будет использоваться.
Возвращаемое значение:
TRUE, если картинка загрузилась успешно, иначе FALSE.
virtual void Draw(CDC* pdc, const CRect& rcBounds) |
Выводит индикатор в окно.
Параметры:
pdc - контекст, используемый для вывода.
rcBounds - координаты прямоугольной область окна, в которую будет осуществляться отрисовка индикатора.
Лаборатория систем ЧПУ МГТУ "Станкин" © 2002-2024
Россия, Москва, Вадковский переулок, д. 3а Телефон: +7 (499) 972-9440 Факс: +7 (499) 972-1873 |