Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение файла в richedit пример из MSDN 
V
    Опции темы
roko
Дата 30.1.2010, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Всем привет! Знаю что такая тема уже есть, но ответа на мой вопрос там не нашлось. Мне надо прочитать текстовый файл в richedit. Вот что я делаю:

Код

if(GetOpenFileName(&ofn))
{
    hLibrary=LoadLibrary(TEXT("Riched20.dll"));
    if (!hLibrary)
        return 0;
    hResultWnd=CreateWindowEx(0,RICHEDIT_CLASS,TEXT(""),ES_MULTILINE | WS_VISIBLE |
                      WS_CHILD | WS_BORDER | WS_TABSTOP|WS_VSCROLL,
                      0,0,200,200,hwnd,NULL,hInstance,NULL);
    FillRichEditFromFile(hResultWnd,ofn.lpstrFile);
}


функция FillRichEditFromFile взята из MSDN(http://msdn.microsoft.com/en-us/library/bb787877(VS.85).aspx). Насколько я понял, благодаря этой функции, richedit сам будет подгружать файл по мере необходимости.

вот код:

Код

DWORD CALLBACK EditStreamCallback(DWORD_PTR dwCookie, LPBYTE lpBuff,
                                  LONG cb, PLONG pcb)
{
    HANDLE hFile = (HANDLE)dwCookie;
    if (ReadFile(hFile, lpBuff, cb, (DWORD *)pcb, NULL)) 
    {
        return 0;
    }
    return -1;
}

BOOL FillRichEditFromFile(HWND hwnd, LPCTSTR pszFile)
{
    BOOL fSuccess = FALSE;
    HANDLE hFile = CreateFile(pszFile, GENERIC_READ, 
        FILE_SHARE_READ, 0, OPEN_EXISTING,
        FILE_FLAG_SEQUENTIAL_SCAN, NULL);
    if (hFile != INVALID_HANDLE_VALUE) 
    {
        EDITSTREAM es = { 0 };
        es.pfnCallback = EditStreamCallback;
        es.dwCookie = (DWORD_PTR)hFile;
        if (SendMessage(hwnd, EM_STREAMIN, SF_RTF, (LPARAM)&es) 
            && es.dwError == 0) 
        {
                fSuccess = TRUE;
        }
        CloseHandle(hFile);
    }
    return fSuccess;
}


при открытии текстового файла richedit появляется, но содержимого файла в нем нету(.
что может быть не так?

тревога отменяется, надо было вместо SF_RTF поставить SF_TEXT

Это сообщение отредактировал(а) roko - 30.1.2010, 12:43
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.