Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
16.02.2016
Размер:
26.09 Mб
Скачать

Int GetTopIndex () const;

Метод возвращает индекс первого видимого элемента в окне списка комбинированного окна. При возникновении ошибки возвращается значение CB_ERR.

int InsertString (int nlndex, LPCTSTR ipszString);

Метод вставляет строку в окно списка комбинированного окна. При возникновении ошибки возвращаются значения CB_ERR или CB_ERRSPACE.

Параметры:

nlndex - индекс, по которому в окне списка будет размещена новая строка. При значении -1 строка будет добавлена в конец списка. IpszString - добавляемая строка. BOOL LimitText (int nMaxChars);

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

При успешном завершении метод возвращает ненулевое значение. При возникновении ошибки возвращается значение CB_ERR.

Параметры:

nMaxChars - допустимая длина текста в байтах. При значении 0 допустимая длина текста устанавливается равной 65535 байт.

Отметим, что этот метод влияет на отображение текста, выходящего за размер окна редактирования только в том случае, если для комбинированного окна установлен стиль CBS_AUTOHSCROLL. Также этот метод не влияет на длину текста, копируемого в окно редактирования при выборе пользователем какого-либо элемента окна списка. void Paste ();

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

void ResetContent ();

Метод удаляет все элементы окна списка и очищает окно редактирования комбинированного окна.

int SelectString (int nStartAfter, LPCTSTR ipszString);

Метод выполняет поиск указанной строки в окне списка комбинированного окна, и если находит ее, то выделяет найденный элемент списка и копирует его в окно редактирования комбинированного окна.

Метод возвращает индекс найденной строки или значение CB_ERR.

Параметры:

nStartAfter - индекс строки, начиная с которой выполняется поиск. Список просматривается циклически: при достижении конца списка поиск продолжается с начала и до строки с указанным индексом. Если этот параметр равен -1, то все элементы окна списка просматриваются с начала. IpszString - строка, содержащая искомый префикс.

Отметим, что данный метод аналогичен методу FindString, но в отличие от него он дополнительно выделяет найденную строку.

int SetCurSel (int nSelect);

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

При успешном завершении метод возвращает индекс выделенного элемента, а в противном случае - значение CB_ERR.

Параметры:

nSelect - определяет индекс выделяемой строки. При значении этого параметра, равном -1, выполняется снятие любого текущего выделения в окне списка и удаление содержимого окна редактирования. int SetDroppedWidth (UINT nWidth);

Метод позволяет установить минимально допустимую ширину (в пикселях) окна редактирования комбинированного окна. При успешном завершении метод возвращает новое значение ширины, а в противном случае - CB_ERR.

По умолчанию первоначально минимально допустимая ширина окна списка равна нулю. Отметим, что этот метод используется только для комбинированных окон стиля CBS_DROPDOWN или CBS_DROPDOWNLIST. BOOL SetEditSel (int nStartChar, int nEndChar);

Метод выделяет указанный диапазон символов в окне редактирования комбинированного окна. При успешном завершении метод возвращает ненулевое значение.

Параметры:

nStartChar - начальная позиция (начиная с нуля). Если этот параметр равен -1, то любое существующее выделение отменяется. nEndChar - конечная позиция (номер символа, следующего за последним выделяемым). Если этот параметр равен -1, то выполняется выделение всего текста, расположенного в окне редактирования комбинированного окна.

int SetExtendedUI (BOOL bExtended = TRUE);

Метод устанавливает для комбинированного окна тип пользовательского интерфейса: расширенный (bExtended = TRUE) или по умолчанию. При успешном завершении метод возвращает значение CB_OKAY, а в случае возникновения ошибки - CB_ERR. void SetHorizontalExtent (UINT nExtent);

Метод устанавливает ширину (в пикселях) прокручиваемого горизонтально окна списка комбинированного окна.

int SetltemData (int nlndex, DWORD dwItemData);

Метод устанавливает 32-разрядное значение, ассоциируемое с указанным элементом комбинированного окна. При возникновении ошибки возвращается значение CB_ERR.

Параметры:

nlndex - индекс элемента.

dwItemData - новое значение, ассоциируемое с данным элементом. int SetltemDataPtr (int nlndex, void* pDatd);

Метод устанавливает 32-разрядное значение как указатель, ассоциируемый с заданным элементом комбинированного окна. Этот указатель не изменяется при изменении порядкового индекса данного элемента. При возникновении ошибки возвращается значение CB_ERR.

int SetltemHeight (int nlndex, UINT cyItem Height);

Метод позволяет установить высоту элемента окна списка или окна редактирования (окна статического элемента управления) комбинированного окна. При успешном завершении метод возвращает нулевое значение. При возникновении ошибки возвращается значение CB_ERR.

Параметры:

nlndex - определяет компонент комбинированного окна: при значении -1 устанавливается высота окна редактирования (или окна статического элемента управления); при установленном стиле CBS_OWNERDRAWVARIABLE определяется высота элемента окна списка, чей индекс равен nlndex; в остальных случаях для установления высоты всех элементов списка этот параметр должен быть равен нулю.

cyltemHeight - значение высоты (в пикселях). LCID SetLocale (LCID nNewLocale);

Метод устанавливает идентификатор места (страны) комбинированного окна. int SetTopIndex (int nlndex);

Метод выполняет прокрутку окна списка комбинированного окна до тех пор, пока не станет видимым элемент списка с указанным индексом.

При успешном завершении метод возвращает нулевое значение, а при возникновении ошибки - значение LB_ERR.

void ShowDropDown (BOOL bShowIt = TRUE);

Метод распахивает или скрывает окно списка комбинированного окна, имеющего стиль CBS_DROPDOWN или CBS_DROPDOWNLIST.

Параметры:

bShowIt - при значении TRUE окно списка распахивается.

Класс Cedit

Класс CEdit обеспечивает функционирование элемента управления окно редактирования. Окно редактирования может быть как однострочным, так и многострочным. Иногда однострочное окно редактирования также называют полем ввода.

Класс CEdit наследует все методы класса CWnd. Так, для определения или изменения содержания окна редактирования можно использовать соответствующие методы базового класса GetWindowText и SetWindowText.

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

ON_EN_CHANGE - пользователь изменил текст в окне редактирования. Сообщение посылается после того, как Windows обновит отображение окна;

ON_EN_ERRSPACE - недостаточно памяти; ON_EN_HSCROLL - пользователь щелкнул на горизонтальной линейке

прокрутки окна редактирования. Сообщение посылается до обновления экрана; ON_EN_KILLFOCUS - окно редактирования теряет фокус;

ON_EN_MAXTEXT - текущая позиция вставки превысила указанное для окна редактирования число символов или не установлен стиль ES_AUTOHSCROLL, а число вставляемых символов превышает ширину окна редактирования или общее число строк превышает высоту окна редактирования;

ON_EN_SETFOCUS - окно редактирования получает фокус ввода.

ON_EN_UPDATE - пользователь изменил текст в окне редактирования. Сообщение посылается до того, как Windows обновит отображение окна.;

ON_EN_VSCROLL - пользователь щелкнул на вертикальной линейке прокрутки окна редактирования. Сообщение посылается до обновления экрана.

Методы класса CEdit BOOL CanUndo () const;

Метод возвращает ненулевое значение, если последнее изменение в окне редактирования можно отменить, и 0, если изменение отменить нельзя.

CEdit О;

Конструктор объекта CEdit. int CharFromPos (CPoint pi) const;

Метод возвращает номер символа в строке и строки (начиная с нуля) для символа, наиболее близко расположенного к указанной точке.

Возвращаемое значение содержит в младших разрядах номер символа, а в старших - номер строки.

Отметим, что этот метод доступен только для Windows 95.

void Clear ();

Метод удаляет в окне редактирования текущее выделение текста.

void Copy ();

Метод копирует текущее выделение текста из окна редактирования в буфер промежуточного хранения.

BOOL Create (DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINTnID);

Метод используется для создания окна редактирования Windows и пристыковывания его к созданному конструктором объекту окно редактирования.

При выполнении этого метода окну редактирования посылаются сообщения WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE, WM_GETMINMAXINFO. Для обработки этих сообщений предусмотрены соответствующие методы класса CWnd.

void Cut ();

Метод удаляет текущее выделение текста из окна редактирования и копирует его в буфер промежуточного хранения (в формате CF_TEXT). void EmptyUndoBuffer ();

Метод сбрасывает флажок сохранности последней редакции (флажок UNDO) в окне редактирования.

BOOL FmtOnes (BOOL bAddEOL);

Метод устанавливает или отменяет режим использования символов мягкого конца строки.

int GetFirstVisibleLine () const;

Метод возвращает номер первой отображаемой строки в окне редактирования.

HLOCAL GetHandle () const;

Метод используется только для многострочного окна редактирования и определяет дескриптор буфера, содержащего текст окна редактирования. UINT GetLimitText () const;

Метод возвращает максимальное количество байт текста, допустимое для окна редактирования.

int GetLine (int nlndex, LPTSTR ipszBuffer) const;

int GetLine (int nlndex, LPTSTR IpszBuffer, int nMaxLength) const;

Эти методы копируют указанную строку текста (без 0-символа) из окна редактирования в буфер и при успешном завершении возвращают количество скопированных байт. При возникновении ошибок методы возвращают нулевое значение.

Параметры:

nlndex - номер копируемой строки (начиная с нуля);

IpszBuffer - указатель буфера, в который копируется строка (первое слово буфера должно указывать максимальное количество байт, которое можно скопировать в этот буфер).

nMaxLength - максимально допустимое количество копируемых байт (это; значение заносится в первое слово IpszBuffer). int GetLineCount () const;

Метод возвращает количество строк текста в многострочном окне редактирования. Если окно редактирования не содержит никакого текста, то метод возвращает значение 0.

DWORD GetMargins () const;

Метод возвращает значения правого и левого отступа (в пикселях) для окна редактирования. BOOL GetModify () const;

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

TCHAR GetPasswordChar () const;

Метод возвращает символ, отображаемый при вводе пароля, вместо любого вводимого пользователем символа. Если такой символ не установлен, то метод возвращает значение NULL.

Отметим, что если окно редактирования имеет стиль ES_PASSWORD, то символом ввода пароля по умолчанию считается символ *. void GetRect (LPRECT ipRect) const;

Метод заносит в структуру RECT координаты прямоугольной области форматирования текста для окна редактирования.

DWORD GetSel () const;

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

Метод определяет позицию первого и последнего символа выделенного фрагмента текста. При вызове первого метода возвращаемое значение позиций имеет тип, в котором младшее слово содержит позицию первого символа, а старшее - первого невыделенного символа, следующего за выделением. При вызове второго метода номера позиций заносятся в параметры nStartChar и nEndChar. void LimitText (int nChars = 0);

Метод устанавливает максимально допустимую длину (в байтах) вводимого пользователем текста.

Параметры:

nChars - длина в байтах. Если это значение равно 0, то максимальная длина текста устанавливается равной UINT_MAX байт.

Отметим, что определяемое этим методом максимальное значение не влияет на длину текста, помещаемого в окно редактирования методом SetWindowText класса CWnd, или уже расположенного в этом окне.

Для Windows 95 и Windows NT аналогом этого метода является SetLimitText. int LineFromChar (int nlndex = -1) const;

Метод возвращает номер строки, в которой расположен указанный символ.

Если параметр nlndex равен -1, то возвращается номер строки, в которой расположен первый символ выделенного фрагмента текста, а если выделения нет, то позиция расположения курсора ввода текста.

int Linelndex (int nLine = -1) const;

Метод возвращает номер первого символа в указанной строке, а при значении параметра, равном -1, - номер первого символа в текущей строке. При ошибочном задании номера строки метод возвращает значение -1.

Для определения номера первого символа строки приложение посылает сообщение EM_LINEINDEX (wParam = (WPARAM) line; lParam = 0;). int LineLength (int nLine = -1) const;

Метод возвращает длину строки (в байтах), содержащей указанный символ. Параметры:

nLine - номер символа. Если значение этого параметра равно -1, то метод определяет длину текущей строки. Для однострочного текстового поля значение параметра игнорируется.

Для определения длины строки приложение посылает сообщение EM_LINELENGTH (wParam = (WPARAM) indexchar;). void LineScroIl (int nLines, int nChars = 0);

Метод выполняет прокрутку текста в многострочном окне редактирования.

Параметры:

nLines - количество строк, прокручиваемых вертикально: положительное значение указывает направление прокрутки к концу текста, отрицательное - к началу.

nChars - количество горизонтально прокручиваемых символов: положительное значение указывает направление прокрутки к концу строки, отрицательное - к началу. Это значение игнорируется, если окно редактирование имеет стиль ES_RIGHT или ES_CENTER.

Отметим, что если номер текущей строки плюс указанное количество прокручиваемых строк превышает общее число строк в окне редактирования, то выполняется прокрутка к последней имеющейся строке, которая перемещается в начало видимой части окна редактирования.

Для выполнения прокрутки текста окна редактирования приложение посылает сообщение EM_LINESCROLL (wParam = (WPARAM) cxScroll; lParam = (LPARAM) cyScroll;). void Paste ();

Метод выполняет вставку данных (формата CF_TEXT) из буфера промежуточного хранения в текущую позицию окна редактирования. CPoint PosFromChar (UINT nChar) const;

Метод возвращает координаты верхнего левого угла указанного символа Параметры:

nChar - номер символа.

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

Отметим, что данный метод доступен только для Windows 95.

Для определения координат символа приложение посылает сообщение EM_POSFROMCHAR. void ReplaceSel (LPCTSTR ipszNewText, BOOL bCanUndo = FALSE);

Метод выполняет замену выделенного фрагмента текста на указанную строку. Если выделение отсутствует, то текст вставляется в текущую позицию.

Параметры:

IpszNewText - новый текст.

bCanUndo - если этот параметр равен TRUE, то редакция может быть впоследствии отменена.

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

Для выполнения замены текста приложение посылает сообщение EM_REPLACESEL. void SetHandle (HLOCAL hBuffer);

Метод позволяет указать буфер памяти, который будет использоваться многострочным окном редактирования для хранения отображаемого текста вместо его собственного буфера. После определения нового буфера выполняется перерисовка окна редактирования. void SetLimitText (UINT nMax);

Метод устанавливает максимально допустимую длину (в байтах) вводимого пользователем текста.

Параметры:

пМах - длина в байтах.

Отметим, что определяемое этим методом максимальное значение не влияет на длину текста, помещаемого в окно редактирования методом SetWindowText класса CWnd, или уже расположенного в этом окне. void SetMargins (UINT nLeft, UINT nRight);

Метод устанавливает левое и правое поле (в пикселях) для окна редактирования.

Отметим, что этот метод доступен только для Windows 95.

Для изменения размеров полей окна редактирования приложение посылает сообщение EM_SETMARGINS. void SetModify (BOOL bModified = TRUE);

Метод устанавливает или сбрасывает флажок изменения текста.

Параметры:

bModified - значение TRUE указывает, что текст был изменен, FALSE -текст не изменялся.

Флажок изменения текста позволяет определить, изменялся ли текст в окне редактирования. Значение этого флажка можно получить вызовом ме-года GetModify.

void SetPasswordChar (TCHAR ch);

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

ch - отображаемый символ. Если ch равно нулю, то при вводе пароля будут отображаться реально вводимые символы.

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

BOOL SetReadOnly (BOOL bReadOnly = TRUE);

Метод включает и отключает режим только чтение для окна редактированиЯ. При успешном завершении метод возвращает ненулевое значение.

Параметры:

bReadOnly - при значении TRUE устанавливается режим доступа только чтение, а при значении FALSE - режим чтение-запись.

Отметим, что возвращаемое значение метода CWnd::GetStyIe позволяет определить установленный режим доступа по наличию флажка ES_READONLY.

void SetRect (LPCRECT ipRect);

Метод устанавливает координаты и размер прямоугольной области форматирования многострочного окна редактирования. Параметры:

IpRect - структура RECT или объект CRect, определяющие новый размер области форматирования.

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

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

void SetRectNP (LPCRECT IpRect);

Метод устанавливает координаты и размер прямоугольной области форматирования многострочного окна редактирования, но в отличие от метода SetRect не выводит заново окно редактирования. void SetSel (DWORD dwSelection, BOOL bNoScroll = FALSE); void SetSel (int nStartChar, int nEndChar, BOOL bNoScroll = FALSE);

Эти методы выполняют выделение в окне редактирования указанного фрагмента текста.

Параметры:

dwSelection - значение типа DWORD, содержащее в младшем слове номер начальной позиции выделения, а в старшем слове - конечной позиции выделения. Если номера этих позиций указаны соответственно 0 и -1, то будет выделен весь текст окна редактирования; если значение номера начальной позиции равно -1, то любое выделение будет снято. bNoScroll - значение, определяющее, будет ли выполнено перемещение курсора ввода.

nStartChar - номер начальной позиции. Если nStartChar равно 0 и nEndChar равно -1, то будет выделен весь текст окна редактирования. Если nStartChar равно -1, то любое выделение будет снято. nEndChar - номер конечной позиции.

Соседние файлы в папке VC++Баженова