Здравствуйте, Carc, Вы писали:
C>" Аноним 47 " <0@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:3590304@news.rsdn.ru...
>> Привет!
>>
>> Столкнулся с такой проблемой:
>>
>> 1) Создаю CRichEditCtrl с параметрами -> WS_HSCROLL | WS_VSCROLL | WS_BORDER | WS_TABSTOP | WS_CHILD | ES_MULTILINE | ES_READONLY
>> 2) делаю SetWindowText со длинной строкой, от 4000 чаров.
>> 3) CRichEditCtrl разбивает эту строку непонятным образом, делает переносы (где ему вздумается) и вместо одной строки рисует 2 и более.
>>
>> Нужно:
>> 1) писать длинные строки в CRichEditCtrl полностью;
>> или в крайнем случае:
>> 2) конролируемый перенос, скажем максимальная длина строки — 2000 и всё, что за ней переносится на следующие строки автоматом (без писанины кода).
>>
>> Подскажите, пожалуйста, как это сделать быстро и просто?
C>Можно отключить мягкий перенос строк
C>void CBaseRichEditView::ShowHorzBar(const bool bShow)
C>{
C>#ifndef EM_SHOWSCROLLBAR
C> enum {EM_SHOWSCROLLBAR=WM_USER+96};
C>#endif
C> CRichEditCtrl& rich=GetRichEditCtrl();
C> ASSERT(IsWindow(rich.GetSafeHwnd()));
C> rich.SendMessage(EM_SHOWSCROLLBAR,SB_HORZ,true == bShow);
C> CRect r(0,0,0,0);
C> GetWindowRect(&r);
C> SetWindowPos(NULL,0,0,r.Width()-1,r.Height()-1,SWP_NOMOVE|SWP_NOREDRAW|SWP_FRAMECHANGED);
C> SetWindowPos(NULL,0,0,r.Width(),r.Height(),SWP_NOMOVE);
C>}
C>bool CBaseRichEditView::SetWrapMode(const bool bWrap)
C>{
C> CRichEditCtrl& rich=GetRichEditCtrl();
C> ASSERT(IsWindow(rich.GetSafeHwnd()));
C>//#ifndef EM_SHOWSCROLLBAR
C>// enum {EM_SHOWSCROLLBAR=WM_USER+96};
C>//#endif
C> if (!bWrap) {
C> rich.SetTargetDevice(NULL,1);
C>// rich.SendMessage(EM_SHOWSCROLLBAR,SB_HORZ,TRUE);
C> ShowHorzBar(true);
C> }
C> else {
C> //rich.SendMessage(EM_SHOWSCROLLBAR,SB_HORZ,FALSE);
C> ShowHorzBar(false);
C> rich.SetTargetDevice(NULL,0);
C> }
C> m_bWrapMode=bWrap;
C> CRect r(0,0,0,0);
C> GetWindowRect(&r);
C> SetWindowPos(NULL,0,0,r.Width()-1,r.Height()-1,SWP_NOMOVE|SWP_NOREDRAW|SWP_FRAMECHANGED);
C> SetWindowPos(NULL,0,0,r.Width(),r.Height(),SWP_NOMOVE);
C> return true;
C>}
C>соответственно юзаем так SetWrapMode(false);
Спасибо! Работает)