По вопросу тебе совершенно верно ответили на форуме. На всякий случай повторю, для ленивых

Вот пример как следовало бы сделать:
Код: Выделить всё
void CMy1Dlg::OnButton1()
{
// Заблокирум кнопку пока читаем из файла
m_ReadBtn.EnableWindow(FALSE);
// Открываем файл в режиме 'текстовый/только_на_чтение/разделяемый доступ'
// Режим 'разделяемый доступ' (CFile::shareDenyNone) позволяет 2 копиям
// программы одновременно работать с одним файлом.
m_pFile.Open("readme.txt", CFile::modeRead|CFile::typeText|CFile::shareDenyNone);
// Запускаем таймер.
SetTimer(ID_TIMER, m_Timeout, NULL);
}
void CMy1Dlg::OnTimer(UINT nIDEvent)
{
CString s;
// Остановим таймер
KillTimer(ID_TIMER);
// Читаем очередную строку
if (m_pFile.ReadString(s))
{
// и добавляем ее в список
m_List.AddString((LPCTSTR) s);
// Задаем новый таймаут (здесь для примера - инкрементом)
// и перезапускаем таймер.
SetTimer(ID_TIMER, (m_Timeout+=1000), NULL);
}
// Достигли конца файла
else
{
// Закрываем файл
m_pFile.Close();
// и разблокируем кнопку
m_ReadBtn.EnableWindow(TRUE);
}
// Вызов стандартного обработчика родительского класса
CDialog::OnTimer(nIDEvent);
}