Re[8]: Глюк VScroll в CEdit
От: AlexLux  
Дата: 18.11.04 15:11
Оценка:
Здравствуйте, 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;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.