В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету
Войти

Как программное добавление элемента управления редактирования текста

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

109550
Аннотация
Windows-приложения часто используют элементы управления редактирования для отображения текста. К нимприложениям иногда требуется добавить текст в конец элемента управления редактированияВместо того, чтобы заменить существующий текст. Существует два способа сделатьЭто в Windows:
  • С помощью сообщения EM_SETSEL и EM_REPLACESEL.
  • Присоединить текст к с помощью сообщения EM_SETSEL с помощью функции буфера обмена буфер редактирования элемента управления.
Дополнительная информация
Примечание: Из-за параметров сообщений для сообщения EM_SETSELразличны для 32-разрядной версии и 16-разрядной версии, следующиекод использует макрос Win32 для определения во время построения, если это 16 - или 32-бит приложения.

Сообщение EM_SETSEL может использоваться для размещения выделенного фрагмента текста вWindows редактирования элемента управления. Если начальным и конечным положениями диапазоназадать позицию, не выбрал и знак вставки можно поместить вэту позицию. Чтобы поместить курсор в конец текста в Windows изменитьэлемент управления и установите фокус на элемент управления, выполните следующее:
   HWND hEdit = GetDlgItem (hDlg, ID_EDIT);   int ndx = GetWindowTextLength (hEdit);   SetFocus (hEdit);   #ifdef WIN32      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);   #else      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));   #endif
Поместив курсор в конце в окне редактирования можно использоватьEM_REPLACESEL для добавления текста в элемент управления редактирования. Приложение передаетсообщения электронной EM_REPLACESEL для замены текущего выделения в редактированиеуправления текст, указанный в параметре lpszReplace (lParam).Так как отсутствует текущее выделение, заменяющий текст будет вставлен втекущее положение курсора. В этом примере задается выбор до концаэлемент управления редактирования и вставки текста в буфере:
   #ifdef WIN32      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);   #else      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));   #endif      SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) szBuffer));				
Другой способ вставки текста в элемент управления редактирования является использование Windowsбуфер обмена. Если приложение имеет открыть буфер обмена или находит удобныйЧтобы открыть буфер обмена, а копирование текста в буфер обмена, а затем его можноОтправьте сообщение WM_PASTE элемент управления для добавления текста. Конечно,все данные в буфере обмена, будут потеряны.

Перед отправкой сообщения WM_PASTE, должен быть помещен курсор в конецтекст элемента управления редактирования, используя сообщение EM_SETSEL. Ниже приведен код «псевдо»показано, как реализовать этот метод.
   OpenClipBoard () ;   EmptyClipBoard() ;   SetClipBoardData() ;   #ifdef WIN32      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);   #else      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));   #endif      SendMessage (hEdit, WM_PASTE,   0, 0L);				
Этот код «псевдо» добавляет текст в конец элемента управления для редактирования. Обратите внимание, чтоданные в буфере обмена должно быть в формате CF_TEXT.

Предупреждение: эта статья переведена автоматически

Свойства

Номер статьи: 109550 — последний просмотр: 06/01/2011 06:34:00 — редакция: 4.0

  • Microsoft Windows Software Development Kit 3.1
  • kbctrl kbeditctrl kbhowto kbmt KB109550 KbMtru
Отзывы и предложения