Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Работа со стандартными ресурсами.

1. Методы класса CButton

 
 HBITMAP GetBitmap() const;
 
 

Возвращает дескриптор растрового изображения, сопоставленного кнопке. Если такового не существует, то возвращается NULL.

 
 HBITMAP SetBitmap(HBITMAP hBitmap);
 
 

Сопоставляет кнопке растровое изображение. Значением параметра должен быть дескриптор растрового изображения. Правила размещения растрового изображения такие же, как и у значка.

 
 HCURSOR GetCursor();
 
 

Возвращает дескриптор курсора, сопоставленного кнопке методом SetCursor. Если у кнопки нет сопоставленного курсора, то возвращается NULL.

 
 HCURSOR SetCursor(HCURSOR hCursot);
 
 

Сопоставляет кнопке курсор, изображение которого будет помещено на поверхность кнопки аналогично значку и растровому изображению.

 
 UINT GetState() const;
 
 

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

  • 0х0003 - выделяет собственное состояние кнопки. Применимо только к флажку или переключателю. Если результат побитового умножения дает 0, значит кнопка находится в невыбранном состоянии, 1 - в выбранном, 2 - в неопределенном.
  • 0х0004 - выделяет состояние первого типа. Ненулевой вариант означает, что кнопка "нажата", нулевой - кнопка свободна.
  • 0х0008 - выделяет положение фокуса. Ненулевой вариант - кнопка в фокусе клавиатуры.
 
 int GetCheck() const;
 
 

Возвращает собственное состояние флажка или переключателя. Возвращаемое значение может принимать одно из значений: 0 - кнопка не выбрана; 1 - кнопка выбрана; 2 - кнопка в неопределенном состоянии. Если кнопка не является ни переключателем, ни флажком, возвращается 0.

 
 void SetCheck(int nCheck);
 
 

Устанавливает собственное состояние флажка или переключателя. Значения задаются из набора: 0 - невыбранное; 1 - выбранное; 2 - неопределенное. Значение 2 применимо только к флажку со свойством 3State.

 
 UINT GetButtonStyle() const;
 
 

Возвращает стиль кнопки.

 
 void SetButtonStyle(UINT nStyle, BOOL bRedraw=TRUE);
 
 

Устанавливает стиль кнопки. Если параметр bRedraw равен TRUE, кнопка перерисовывается.

 
 HICON GetIcon() const;
 
 

Возвращает дескриптор пиктограммы, сопоставленной кнопке. Если у кнопки нет сопоставленной пиктограммы, возвращает NULL.

 
 HICON SetIcon(HICON hIcon);
 
 

Сопоставляет кнопке пиктограмму. Значением параметра при вызове должен быть дескриптор пиктограммы.

Пиктограмма автоматически помешается на поверхность кнопки и сдвигается в ее центр. Если поверхность кнопки меньше пиктограммы, она обрезается со всех сторон до размеров кнопки. Положение пиктограммы может быть выровнено и не по центру. Для этого нужно, чтобы кнопка имела одно из следующих свойств: BS_LEFT, BS_RIGHT, BS_CENTER, BS_TOP, BS_BOTTOM, BS_VCENTER

Данный метод устанавливает для кнопки только одну пиктограмму, которая будет наравне с текстом присутствовать при любом ее состоянии. Не надо путать ее с растровым изображением у растровой кнопки.

2. Методы класса CEdit

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

Общие методы :

 
 DWORD GetSel() const;
 
 void GetSel(int& nStartChar, int& nEndChar) const;
 
 

Получает первую и последнюю позиции выделенного текста. Для значения типа DWORD младшее слово содержит позицию первого, старшее - последнего символа.

 
 void SetSel(DWORD dwSelection, BOOL bNoScroll=FALSE);
 
 void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll=FALSE);
 
 

Устанавливает новое выделение текста, задавая первый и последний выделенный символ. Значение FALSE параметра bNoScroll должно отключать перемещение курсора в область видимости.

 
 void ReplaceSel(LPCTSTR lpszNewText);
 
 

Заменяет выделенный текст на строку, передаваемую в параметре lpszNewText.

 
 void Clear();
 
 

Удаляет выделенный текст.

 
 void Copy();
 
 

Копирует выделенный текст в буфер.

 
 void Cut();
 
 

Переносит (копирует и удаляет) выделенный текст в буфер обмена.

 
 void Paste();
 
 

Вставляет текст из буфера обмена, начиная с позиции, в которой находится курсор.

 
 BOOL Undo();
 
 

Отмена последней операции, выполненной редактором. Если редактор однострочный, возвращается всегда неотрицательное значение, иначе неотрицательное значение возвращается лишь в случае успешной замены.

 
 BOOL CanUndo() const;
 
 

Определяет, можно ли отменить последнюю операцию редактора.

 
 void EmptyUndoBuffer();
 
 

Сбрасывает флаг undo, сигнализирующий о возможности отмены последней операции редактора, и тем самым делает невозможным отмену. Этот флаг сбрасывается автоматически при выполнении методов SetWindowText и SetHandle.

 
 BOOL GetModify() const;
 
 

Возвращает неотрицательное значение, если содержимое окна редактирования не модифицировалось. Информация о модификации поддерживается в специальном флаге, обнуляемом при создании окна редактирования и при вызове метода:

 
 void SetModify(BOOL bModified=TRUE);
 
 

Устанавливает или сбрасывает флаг модификации (см. предыдущий метод). Флаг сбрасывается при вызове метода с параметром FALSE и устанавливается при модификации содержимого окна редактирования или при вызове SetModify с параметром TRUE.

 
 BOOL SetReadOnly(BOOL bReadOnly=TRUE);
 
 

Устанавливает режим просмотра (bReadOnly=TRUE) или редактирования (bReadOnly=FALSE).

 
 TCHAR GetPasswordChar() const;
 
 

Возвращает символ, который при выводе пароля будет появляться на экране вместо символов, набираемых пользователем. Если такой символ не определен, возвращается 0. Устанавливается этот символ методом (по умолчанию используется "*"):

 
 void SetPasswordChar(TCHAR ch);
 
 void LimitText(int nChars=0);
 
 

Устанавливает максимальную длину в байтах текста, который может ввести пользователь. Если значение параметра равно 0, длина текста устанавливается равной UINT_MAX.

Методы работы с многострочным редактором :

 
 void LineScroll(int nLines, int nChars=0);
 
 

Прокручивает текст в области редактирования. Параметр nLimes задает число строк для вертикальной прокрутки. Окно редактирования не прокручивает текст дальше последней строки. При положительном значении параметра область редактирования сдвигается вдоль текста к последней строке, при отрицательной - к первой.

Параметр nChars задает число символов для горизонтальной прокрутки. Окно редактирования прокручивает текст вправо, даже если строки закончились. В этом случае в области редактирования появляются пробелы. При положительном значении параметра область редактирования сдвигается вдоль к концу строки, при отрицательном - к началу.

 
 int GetFirstVisibleLine() const;
 
 

Возвращает номер первой видимой строки.

 
 int GetLineCount() const;
 
 

Возвращает число строк текста, находящегося в буфере редактирования. Если текст не вводился, возвращает 1.

 
 int GetLine(int nIndex, LPTSTR lpszBuffer) const;
 
 int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const;
 
 

Копирует строку с номером, равным значению параметра nIndex, в буфер, заданный параметром lpszBuffer. Первое слово в буфере должно задавать его размер. При вызове второго варианта метода значение параметра nMaxLength копируется в первое слово буфера.

Метод возвращает число в действительности скопированных байтов. Если номер строки больше или равен числу строк в буфере окна редактирования, возвращает 0. Текст копируется без каких-либо изменений, нуль-символ не добавляется.

 
 int LineIndex(int nLine=-1) const;
 
 

Возвращает номер первого символа в строке. Неотрицательное значение параметра принимается в качестве номера строки. Значение -1 задает текущую строку. Если номер строки больше или равен числу строк в буфере окна редактирования (строки нумеруются с 0), возвращается 0.

3. Методы класса CListBox

 
 void ResetContent();
 
 

Очищает содержимое списка, делая его пустым.

 
 int AddString( LPCSTR lpszItem);
 
 

Добавляет строку lpszItem в список и сортирует его, если при создании включено свойство Sort. В противном случае элемент добавляется в конец списка.

 
 int DeleteString( UINT nIndex);
 
 

Удаляет из списка элемент с индексом nIndex. Индексация элементов начинается с 0.

 
 int GetCurSel() const;
 
 

Получает индекс элемента, выбранного пользователем.

 
 int SetCurSel( int nSelect);
 
 

Отмечает элемент с индексом nSelect как выбранный элемент списка. Если значение параметра равно -1, список не будет содержать отмеченных элементов.

 
 int GetText( int nIndex, LPSTR lpszBuffer) const;
 
 void GetText( int nIndex, CString& rString) const;
 
 

Копирует элемент с индексом nIndex в буфер.

 
 int SetTopIndex( int nIndex);
 
 

Организует прокрутку списка в окне так, чтобы элемент с индексом nIndex был видимым.

 
 int FindString( int nStartAfter, LPCSTR lpszItem) const;
 
 

Организует поиск в списке и возвращает в качестве результата индекс элемента списка, префикс которого совпадает со строкой lpszItem. Результат не зависит от регистра, в котором набирались символы сравниваемых строк. Параметр nStartAfter задает начало поиска, но поиск идет по всему списку. Он начинается от элемента, следующего за nStartAfter, до конца списка и затем продолжается от начала списка до элемента с индексом nStartAfter. В качестве результата выдается первый найденный элемент, удовлетворяющий условиям поиска. Если такого нет, результат получает значение LB_ERR.

 
 int FindStringExact( int nIndexStart, LPCSTR lpszFind) const;
 
 

Этот метод отличается от предыдущего тем, что теперь не префикс элемента должен совпадать со строкой lpszFind, а сам элемент. Поиск по-прежнему не чувствителен к регистру, в котором набираются символы.

4. Методы класса CComboBox

 
 int GetCurSel() const;
 
 

Возвращает целочисленный указатель выбранной строчки.

 
 int SetCurSel(int nSelect);;
 
 

Ставит указатель на строчку с номером nSelect.

 
 int GetLBText(int nIndex, LPTSTR lpszText) const;
 
 void GetLBText(int nIndex, CString& rString) const;
 
 

Записывает содержимое строчки с индексом nIndex в переменные LPTSTR lpszText или CString& rString.

 
 int GetLBTextLen(int nIndex) const;
 
 

Возвращает длину строчки с индексом nIndex.

 
 int AddString(LPCTSTR lpszString);
 
 

Добавляет строчку в список.

 
 int DeleteString(UINT nIndex);
 
 

Удаление строчки с индексом nIndex.

 
 int InsertString(int nIndex, LPCTSTR lpszString);
 
 

Заменяет строчку с индексом nIndex содержимым переменной LPCTSTR lpszString.

5. Методы класса CProgressCtrl

 
 void SetRange(short nLower, short nUpper);
 
 void SetRange32(int nLower, int nUpper);
 
 

Устанавливает минимальное ( nLower ) и максимальное значение ( nUpper ).

 
 void GetRange(int& nLower, int& nUpper);
 
 

Записывает в переменные nLower и nUpper минимальное и максимальное значение.

 
 int GetPos();
 
 

Возвращает текущее значение.

 
 int SetPos(int nPos);
 
 

Устанавливает текущее значение в nPos.

 
 int SetStep(int nStep);
 
 

Устанавливает шаг ( nStep ) вывода.

6. Методы класса CSliderCtrl

 
 int GetRangeMax() const;
 
 int GetRangeMin() const;
 
 void GetRange(int& nMin, int& nMax) const;
 
 

Первые две функции возвращают максимальное и минимальное знанение, а третья - записывает эти значения в nMax и nMin соответственно.

 
 void SetRangeMin(int nMin, BOOL bRedraw = FALSE);
 
 void SetRangeMax(int nMax, BOOL bRedraw = FALSE);
 
 void SetRange(int nMin, int nMax, BOOL bRedraw = FALSE);
 
 

Первые две функции устанавливают максимальное и минимальное знанение, а третья - устанавливает эти значения из переменных nMax и nMin соответственно. Аргумент bRedraw отвечает за перерисовку слайдера.

 
 int GetPos() const;
 
 

Возвращает текущую позицию.

 
 void SetPos(int nPos);
 
 

Устанавливает текущую позицию в nPos.

 
 BOOL SetTic(int nTic);
 
 

Устанавливает шаг ( nTic ).

 
 void SetTicFreq(int nFreq);
 
 

Устанавливает частоту засечек ( nFreq ).

7. Методы класса CSpinButtonCtrl

 
 int SetPos(int nPos);
 
 

Устанавливает текущую позицию в nPos.

 
 int GetPos() const;;
 
 

Возвращает текущую позицию.

 
 void SetRange(int nLower, int nUpper);
 
 void SetRange32(int nLower, int nUpper);
 
 

Устанавливает максимальное и минимальное знанение из переменных nMax и nMin соответственно.

 
 void GetRange(int &lower, int& upper) const;
 
 void GetRange32(int &lower, int& upper) const;;
 
 

Эти две функции записывают максимальное и минимальное знанение в upper и lower соответственно.

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS