Уроки Iczelion'а



         

Урок 34. Операции над текстом в RichEdit - часть 3


&nbsp EM_EXSETSEL

&nbsp wParam == не используется. Должен быть равен 0. lParam == указатель на структуру CHARRANGE, который содержит диапазон символов, который необходимо выделить.

&nbsp Уведомительные события

&nbsp В случае с многолинейным edit control'ом вам необходимо сабклассировать его, чтобы получить входные сообщения, такие как события мыши/клавиатуры. RichEdit предоставляет лучший способ: он будет уведомлять родительское окно о таких событиях. Чтобы указать RichEdit, какие события нужно посылать, родительское окно посылает сообщение EM_SETEVENTMASK контролу RichEdit, указывая, в каких событиях он заинтересован. У EM_SETEVENTMASK следующий синтаксис:

&nbsp EM_SETEVENTMASK

&nbsp wParam == не используется. Должен быть равен нулю. lParam == маска событий. Это должна быть комбинация флагов, указанных ниже.

  • ENM_CHANGE - прием уведомлений EN_CHANGE.
  • ENM_CORRECTTEXT - прием уведомлений EN_CORRECTTEXT.
  • ENM_DRAGDROPDONE - прием уведомлений EN_DRAGDROPDONE.
  • ENM_DROPFILES - прием уведомлений EN_DROPFILES.
  • ENM_KEYEVENTS - прием уведомлений EN_MSGFILTER, относящихся к событиям от клавиатуры.
  • ENM_LINK - RichEdit 2.0 и выше: прием уведомлений EN_LINK, когда курсор мыши находится над текстом, который принимает CFE_LINK и/или другие события от мыши.
  • ENM_MOUSEEVENTS - прием уведомлений EN_MSGFILTER, относящихся к событиям от мыши.
  • ENM_OBJECTPOSITIONS - прием уведомлений EN_OBJECTPOSITIONS.
  • ENM_PROTECTED - прием уведомлений EN_PROTECTED.
  • ENM_REQUESTRESIZE - прием уведомлений EN_REQUESTRESIZE.
  • ENM_SCROLL - прием уведомлений EN_HSCROLL и EN_VSCROLL.
  • ENM_SCROLLEVENTS - прием уведомлений EN_MSGFILTER от колесика мыши.
  • ENM_SELCHANGE - прием уведомлений EN_SELCHANGE.
  • ENM_UPDATE - прием уведомлений EN_UPDATE. RichEdit 2.0 и выше: этот флаг игнорирует, а сообщения EN_UPDATE отсылаются всегда. Тем не менее, если Rich Edit 3.0 эмулирует Rich Edit 1.0, вы должны указать этот флаг для того, чтобы родительское окно принимало уведомления EN_UPDATE.
  • &nbsp Все вышеуказанные уведомления будут отсылаться через сообщение WM_NOTIFY: вы должны проверить поле 'code' структуры NMHDR, чтобы узнать, какое уведомление вы получили. Например, если вы хотите зарегистрировать сообщения от мыши (скажем, чтобы отображать контекстное меню по нажатию на правую кнопку мыши), вы должны сделать что-то вроде следующего:




    Содержание  Назад  Вперед