Четверг, 16.05.2024, 21:50
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » Visual C++ и MFC

Часто встречаемые классы. CPoint, CSize, CRect, CString
Часто встречаемые классы
 В данном разделе вы познакомитесь с наиболее употребительными функциями
вышеприведенных классов.

Класс CPoint // Точка

CPoint(); // Конструктор по умолчанию
CPoint( int initX, int initY ); // Конструктор с координатами
CPoint( POINT initPt ); // Конструктор с параметром точка
CPoint( SIZE initSize ); // Конструктор с параметром размер
void Offset( int xOffset, int yOffset ); // Прибавление
void Offset( POINT point ); // координат
void Offset( SIZE size ); // к точке
BOOL operator ==( POINT point ) const; // Сравнение двух точек
 // (true - равны)
BOOL operator !=( POINT point ) const; // Сравнение двух точек
 // (true - неравны)

Данные-члены:
X, Y - координаты

Класс CSize // Размер

CSize( ); // Конструктор по умолчанию
CSize( int initCX, int initCY ); // Конструктор с размерами
CSize( SIZE initSize ); // Конструктор с параметром размер
CSize( POINT initPt ); // Конструктор с параметром точка
BOOL operator ==( SIZE size ) const; // Сравнение двух размеров
 // (true - равны)
BOOL operator !=( SIZE size ) const; // Сравнение двух размеров
 // (true - неравны)
void operator +=( SIZE size ); // Добавление размера
void operator -=( SIZE size ); // Вычитание размера
CSize operator +( SIZE size ) const; // Сложение двух размеров
CPoint operator +( POINT point ) const; // Добавление размера к точке
 // (перенос точки)
CSize operator -( SIZE size ) const; // Вычитание двух размеров
CPoint operator -( POINT point ) const; // Вычитание размера из точки
 // (перенос точки)

Данные-члены:
cx - ширина, cy - высота

Класс CRect // Прямоугольник

CRect( ); // Конструктор по умолчанию
CRect( int l, int t, int r, int b ); // Конструктор с параметрами
 // лево, верх, право, низ
CRect( const RECT& srcRect ); // Конструктор с параметром ссылка
 // на структуру RECT
CRect( LPCRECT lpSrcRect ); // Конструктор с параметром
 // указатель на структуру RECT
CRect( POINT point, SIZE size ); // Конструктор с параметрами левая
 // верхняя точка и размер (ширина и высота прямоугольника)
CRect( POINT topLeft, POINT bottomRight ); // Конструктор с параметрами
 // левая верхняя точка и правая нижняя точка
int Width( ) const; // Ширина прямоугольника
int Height( ) const; // Высота прямоугольника
CSize Size( ) const; // Функция, вычисляющая размера прямоугольника,
 // желательно предварительно вызвать функцию NormalizeRect
CPoint& TopLeft( ); // Вычисление верхней левой точки прямоугольника
CPoint& BottomRight( ); // Вычисление нижней правой точки прямоугольника
CPoint CenterPoint( ) const;// Вычисление центральной точки прямоугольника

BOOL IsRectEmpty( ) const; // Возвращает истину, если прямоугольник пуст
 // (ширина и/или высота прямоугольника <= 0)
 // желательно предварительно вызвать функцию NormalizeRect
BOOL IsRectNull( ) const; // Возвращает истину, если все параметры = 0

BOOL PtInRect( POINT point ) const; // Возвращает истину, если точка
 // лежит внутри прямоугольника

void SetRect( int x1, int y1, int x2, int y2 ); // Установка размера
 // и координат
void SetRectEmpty( ); // Установка всех координат прямоугольника в 0

void CopyRect( LPCRECT lpSrcRect ); // Копирование переданного
 // прямоугольника
void operator =( const RECT& srcRect ); // Присваивание прямоугольников

BOOL EqualRect( LPCRECT lpRect ) const; // Возвращают истину, если
BOOL operator ==( const RECT& rect ) const;// прямоугольники совпадают
 // желательно предварительно вызвать функцию
 // NormalizeRect для обоих прямоугольников

void InflateRect( int x, int y ); // Увеличивают размер
void InflateRect( SIZE size ); // прямоугольника, двигая
void InflateRect( LPCRECT lpRect ); // границы относительно
void InflateRect( int l, int t, int r, int b );// центральной точки

void DeflateRect( int x, int y ); // Уменьшают размер
void DeflateRect( SIZE size ); // прямоугольника, двигая
void DeflateRect( LPCRECT lpRect ); // границы относительно
void DeflateRect( int l, int t, int r, int b );// центральной точки

void NormalizeRect( ); // Нормализует координаты прямоугольника,
// т. е. ширина и высота становятся положительными, если левая сторона
// имеет координату > правой, то они меняются местами, то же самое
// относится к верхней и нижней сторонам прямоугольника

void OffsetRect( int x, int y ); // Сдвигают прямоугольник
void OffsetRect( POINT point ); // в заданную
void OffsetRect( SIZE size ); // позицию

BOOL SubtractRect( LPCRECT lpRectSrc1, LPCRECT lpRectSrc2 ); 
// Возвращает истину, если операция прошла успешно;
// вычитает прямоугольник lpRectSrc2 из lpRectSrc1 (т. е. создает
// прямоугольник который состоит из всех точек из lpRectSrc1,
// не входящих в lpRectSrc2). Прямоугольнику присваивается lpRectSrc1,
// если результат вычитания не является прямоугольником.
// Желательно предварительно вызвать функцию
// NormalizeRect для обоих прямоугольников

BOOL IntersectRect( LPCRECT lpRect1, LPCRECT lpRect2 );
// Возвращает истину, если пересечение не пусто.
// Создает прямоугольник, равный пересечению прямоугольников
// lpRect1 и lpRect2.
// Желательно предварительно вызвать функцию
// NormalizeRect для обоих прямоугольников

BOOL UnionRect( LPCRECT lpRect1, LPCRECT lpRect2 );
// Возвращает истину, если объединение не пусто.
// Создает прямоугольник, равный объединению прямоугольников
// lpRect1 и lpRect2.
// Желательно предварительно вызвать функцию
// NormalizeRect для обоих прямоугольников

Данные-члены:
left - левая сторона
right - правая сторона
top - верхняя сторона
bottom - нижняя сторона

Класс CString // Строка

CString( ); // Конструкторы
CString( const CString& stringSrc );
CString( TCHAR ch, int nRepeat = 1 );
CString( LPCTSTR lpch, int nLength );
CString( const unsigned char* psz );
CString( LPCWSTR lpsz );
CString( LPCSTR lpsz );

int GetLength( ) const; // Возвращает количество байт в строке
BOOL IsEmpty( ) const; // Возвращает истину, если в строке 0 байт
void Empty( ); // Очистка строки

TCHAR GetAt( int nIndex ) const; // Получение элемента строки
TCHAR operator []( int nIndex ) const; // по заданному индексу
void SetAt( int nIndex, TCHAR ch ); // Замена элемента строки
 // по заданному индексу
// Сравнение строк с учетом регистра
BOOL operator ==( const CString& s1, const CString& s2 );
BOOL operator ==( const CString& s1, LPCTSTR s2 );
BOOL operator ==( LPCTSTR s1, const CString& s2 );
BOOL operator !=( const CString& s1, const CString& s2 );
BOOL operator !=( const CString& s1, LPCTSTR s2 );
BOOL operator !=( LPCTSTR s1, const CString& s2 );
BOOL operator <( const CString& s1, const CString& s2 );
BOOL operator <( const CString& s1, LPCTSTR s2 );
BOOL operator <( LPCTSTR s1, const CString& s2 );
BOOL operator >( const CString& s1, const CString& s2 );
BOOL operator >( const CString& s1, LPCTSTR s2 );
BOOL operator >( LPCTSTR s1, const CString& s2 );
BOOL operator <=( const CString& s1, const CString& s2 );
BOOL operator <=( const CString& s1, LPCTSTR s2 );
BOOL operator <=( LPCTSTR s1, const CString& s2 );
BOOL operator >=( const CString& s1, const CString& s2 );
BOOL operator >=( const CString& s1, LPCTSTR s2 );
BOOL operator >=( LPCTSTR s1, const CString& s2 );

int Compare( LPCTSTR lpsz ) const; // Сравнение строк
// возвращает 0, если строки равны; > 0, если строка > lpsz;
// < 0, если строка < lpsz

int CompareNoCase( LPCTSTR lpsz ) const;
// То же самое, но без учета регистра

CString Mid( int nFirst ) const; // Возвращает символы, начиная
 // с позиции nFirst
CString Mid( int nFirst, int nCount ) const;
// Возвращает nCount символов, начиная с позиции nFirst

CString Left( int nCount ) const; // Возвращает nCount символов слева
CString Right( int nCount ) const; // Возвращает nCount символов справа

void MakeUpper( ); // Переводит строку в верхний регистр
void MakeLower( ); // Переводит строку в нижний регистр
void MakeReverse( ); // Переворачивает строку

int Replace( TCHAR chOld, TCHAR chNew );// Замена символов chOld на chNew,
// возвращается количество проведенных замен или 0, если их не было.
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
// То же самое, только происходит замена подстроки lpszOld на lpszNew.

int Remove( TCHAR ch ); // Удаляет символ ch из строки, возвращает
// количество удаленных символов или 0, если удалений не было.

int Insert( int nIndex, TCHAR ch ); 
// Вставка символа в позицию nIndex, возвращает длину измененной строки
int Insert( int nIndex, LPCTSTR pstr );
// Вставка подстроки в позицию nIndex, возвращает длину измененной строки

int Delete( int nIndex, int nCount = 1 ); // Удаление nCount символов,
// начиная с позиции nIndex, возвращает количество удаленных символов

int Find( TCHAR ch ) const; // Поиск символа
int Find( LPCTSTR lpszSub ) const; // Поиск подстроки
int Find( TCHAR ch, int nStart ) const;
// Поиск символа с позиции nStart
int Find( LPCTSTR pstr, int nStart ) const;
// Поиск подстроки с позиции nStart

// функции возвращают индекс найденного элемента (индекс начинается с 0)
// или -1, если элементы найдены не были

void Format( LPCTSTR lpszFormat, ... );
// Форматированный вывод в строку
// Общий формат представляется в виде:
// %[flags] [width] [.precision] [{h | l | I64 | L}]type
// здесь type:
// c - Символ
// d, i - целое знаковое число
// o - беззнаковое восьмеричное число
// x - беззнаковое шестнадцатиричное число, используются "abcdef"
// X - беззнаковое шестнадцатиричное число, используются "ABCDEF"
// u - беззнаковое десятичное число
// e - знаковое вещественное число в научной нотации
// f - знаковое вещественное число
// g - в зависимости от ситуации представляется в виде форматов e и f
// n - указатель на целое
// p - указатель на void
// s - строка
// flags:
// - - выравнивание по левому краю (по умолчанию по правому)
// + - если выводимые числа знаковые, то у них будет появляться знак (+/-)
// width - ширина поля вывода
// precision:
// тип с - не дает эффекта
// типы d, i, o, u, x, X - минимальное количество выводимых цифр,
// если цифр меньше, то число дополняется нулями
// тип e - количество цифр, которое распечатается после десятичной точки,
// последняя цифра округляется
// тип f - количество цифр после десятичной точки, как минимум одна цифра
// появится до запятой, число округляется до заданного количества цифр
// тип g - максимальное количество печатаемых значащих цифр
// тип s - максимальное количество печатаемых символов

Причер использования:

CString s;
int hour = 1, min = 12;
s.Format("Hello, World !\r%d:%d", hour, min);

Примечание:
здесь представлены большинство наиболее употребительных функций
описанных классов. За более полной информацией обращайтесь в MSDN.
Категория: Visual C++ и MFC | Добавил: slava (26.09.2009)
Просмотров: 7575 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]