Здравствуйте, AlexLux, Вы писали:
AL>Здравствуйте, SchweinDeBurg, Вы писали:
SDB>>Здравствуйте, AlexLux, Вы писали:
AL>>>У меня в EditBoxe`е не работает вертикальный скролл! При прокрутке текста вновь появляемые строки накладываются на строки в окне, в результате текст смазывается. Как это можно исправить?
SDB>>А на код можно взглянуть?
AL>Вот текст функции, добавляющей строки в EditBox:
AL>AL>//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AL>LRESULT CReNamerDlg::OnDsplReslt(WPARAM wParam, LPARAM lParam)
AL>{
AL> CString sNCount = "";
AL> sNCount.Format("%u", m_FileProc.m_uReplCntr);
AL> m_sInfoBox = m_FileProc.m_sCrntFilePath +
AL> " - " + sNCount + " replaces;\r\n";
AL> int selFirst = 0, selLast = 0;
AL> m_InfoBox1.SendMessage(EM_GETSEL, (WPARAM)&selFirst, (LPARAM)&selLast);
AL> if (selFirst == selLast)
AL> {
AL> selFirst = selLast = m_InfoBox1.GetWindowTextLength();
AL> }
AL> m_InfoBox1.SendMessage(EM_SETSEL, selFirst, selLast);
AL> m_InfoBox1.SendMessage(EM_REPLACESEL, TRUE, (LONG)(LPCSTR)m_sInfoBox);
AL> return 1;
AL>}
AL>
Вот такой код у меня работает:
CString m_sInfoBox = "12345\r\n";
int selFirst = 0, selLast = 0;
m_InfoBox1.SendMessage(EM_GETSEL, (WPARAM)&selFirst, (LPARAM)&selLast);
if (selFirst == selLast)
{
selFirst = selLast = m_InfoBox1.GetWindowTextLength();
}
m_InfoBox1.SendMessage(EM_SETSEL, selFirst, selLast);
m_InfoBox1.SendMessage(EM_REPLACESEL, TRUE, (LONG)(LPCSTR)m_sInfoBox);
m_InfoBox1 я объявил как CEdit в хэдере и в OnInitDialog вызвал CEdit.Attach к окну на форме, у которого выставлены свойства Visible, TabStop, Multiline, VerticalScroll.