Здравствуйте, visual_wind, Вы писали:
AL>>Вот такой код наабивает EditBox ОТЛИЧАЮЩИМИСЯ строками. После этого у меня прокрутка текста скроллбаром вызывает его смазывание.
AL>>AL>>CString m_sInfoBox = "12345\r\n54321\r\n";
AL>>int selFirst = 0, selLast = 0;
AL>>for (UINT i=0; i<100; i++)
AL>>{
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>>}
AL>>
_>У меня все работает нормально.
_>Может, приведете подробности создания едита и место, в котором вызывается функция, в которой Вы заполняете едит?
Я использую EditBox c атрибутом ReadOnly, а для восстановления белого цвета использую обработчик
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
HBRUSH CReNamerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if (pWnd == &m_InfoBox1)
{
hbr = (HBRUSH)GetStockObject(WHITE_BRUSH);
pDC->SetBkMode(TRANSPARENT);
}
// TODO: Return a different brush if the default is not desired
return hbr;
}