Операционная система Windows 95 для программиста


Описание функций - часть 7


Поле wAlignment структуры PARAFORMAT задает выравнивание параграфа. Вы можете указать здесь следующие значения:

Значение Тип выравнивания параграфа
PFA_LEFT По левой границе окна редактирования
PFA_RIGHT По правой границе окна редактирования
PFA_CENTER Центрирование

  • Format/Paragraph/Right

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

  • Format/Paragraph/Center

Выравнивание по центру выполняется аналогично выравниванию по левой и правой границе окна редактирования.

  • Edit/Undo
  • Edit/Cut
  • Edit/Copy
  • Edit/Paste
  • Edit/Delete

Обработка сообщений от строк Undo, Cut, Copy, Paste и Delete выполняется очень просто. Органу управления Rich Edit посылается соответствующее сообщение: EM_UNDO , WM_CUT , WM_COPY , WM_PASTE или WM_CLEAR . Например:

case ID_EDIT_UNDO: SendMessage(hwndEdit, EM_UNDO, 0, 0L); return 0L; break;

  • Edit/Select all

В некоторых случаях удобно выполнять какую-либо операцию со всем текстом сразу. Для того чтобы можно было выделить весь текст, органу управления Rich Text посылается сообщение EM_EXSETSEL :

CHARRANGE charr; charr.cpMin = 0; // от начала... charr.cpMax = -1; // ... и до конца текста SendMessage(hwndEdit, EM_EXSETSEL, 0, (LPARAM)&charr);

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

typedef struct _charrange { LONG cpMin; // номер первого выделяемого символа LONG cpMax; // номер последнего выделяемого символа } CHARRANGE;

Для того чтобы выделить весь текст, в поле cpMin необходимо записать нулевое значение, а в поле cpMax - значение -1.

  • File/New

Когда пользователь выбирает строку New из меню File, содержимое редактора удаляется простейшим способом - при помощи функции SetWindowText :

SetWindowText(hwndEdit,"\0");

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




Начало  Назад  Вперед