Здравствуйте, visual_wind, Вы писали:
_>Здравствуйте, 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.
А ты попробуй
CString m_sInfoBox = "12345\r\n54321\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);