Меню сайта
Категории раздела
HTML [44] |
Visual C++ и MFC [21] |
c++ [78] |
php [19] |
Javascript [15] |
C# [51] |
загрузки [0] |
XNA
[10]
создание игр с помощью xna
|
Наш опрос
Друзья сайта
Статистика
Онлайн всего: 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 - максимальное количество печатаемых символов Причер использования: Примечание: здесь представлены большинство наиболее употребительных функций описанных классов. За более полной информацией обращайтесь в MSDN. | |
Просмотров: 7647 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |