На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> WinAPI: Включение и отключение переноса по словам в RichEdit , Вроде просто, но не получается
    Создаю RichEdit на окне из ресурса (может это имеет значение) со следующими флагами
    ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL | WS_HSCROLL | WS_VSCROLL | WS_BORDER | WS_TABSTOP | ES_WANTRETURN

    Первым делом попробовал флаги окна поменять
    ExpandedWrap disabled
      SetWindowlong (hWnd, SWL_STYLE, GetWindowLong (hWnd, GWL_STYLE) & ~WS_HSCROLL & ~WS_AUTOVSCROLL);
      SetWindowPos (hEditWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); // чтобы окно проапдейтилось

    Изменений нет :(

    Потом покопал EM_SETWORDWRAPMODE - это тока для азиатских языков.
    Покопал EM_SETWORDBREAKPROC - вменяемого примера не нашел.

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

      ExpandedWrap disabled
        void RichEdit::setWordWrap(bool w) { SendMessage(m_hWnd, EM_SETTARGETDEVICE, NULL, (LPARAM)!w); }


      Если передать true - будет WordWrap, если false - не будет.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0190 ]   [ 16 queries used ]   [ Generated: 23.04.24, 20:00 GMT ]