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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ребят помогите пожалуйста с таблицей 
:(
    Опции темы
yngwie19
Дата 10.4.2009, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

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



есть файл .rtf (прикреплен внизу), который Я загружаю в RichEdit, мне нужно чтобы таблица в этом файле располагалась на всю ширину видимой области RichEdit (НЕ больше. Полосы прокрутки вправо не должны появляться). Можно было бы воспользоваться EM_SETZOOM, однако на разных мониторов это будет работать по разному за счет различаючегося расширения экрана. Вообшем помогите пожалуйста очень нужно как можно скорее. Вот наброски кода для окна с RichEdit любезно предоставленные 586 (За что ему огромное спасибо). И вот файл, который мне нужно загрузить. Еще раз прошу помогите подалуйста.
Код

#include <windows.h>
#include <tchar.h>
#include <stdio.h>

HWND hMainWnd = 0;
HWND hWndRichEdit = 0;

LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;

    case WM_SIZE:
        MoveWindow(hWndRichEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
        break;
    }
    return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wc = {0};

    wc.cbSize = sizeof(wc);
    wc.lpfnWndProc = MainWndProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
    wc.lpszClassName = _T("MainWndClass");
    RegisterClassEx(&wc);

    hMainWnd = CreateWindowEx(0, wc.lpszClassName, _T("TestApp"), WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        200, 200, 400, 365, NULL, NULL, hInstance, NULL);

    LoadLibrary("Msftedit.dll");

    hWndRichEdit = CreateWindowEx(0, _T("RichEdit50W"), NULL, WS_VISIBLE | WS_CHILD | WS_BORDER |
            ES_MULTILINE | WS_VSCROLL | WS_HSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_READONLY,
        0, 0, 380, 320, hMainWnd, NULL, hInstance, NULL);

    HANDLE hFile = CreateFile(_T("C:\\2.rtf"), GENERIC_READ, FILE_SHARE_READ,
        0, OPEN_EXISTING, 0, 0);
    if(hFile != INVALID_HANDLE_VALUE)
    {
        DWORD dwRead = 0, dwSize = GetFileSize(hFile, NULL);
        char *buf = new char[dwSize+1];
        ReadFile(hFile, buf, dwSize, &dwRead, 0);
        buf[dwRead] = '\0';
        CloseHandle(hFile);

        SetWindowTextW(hWndRichEdit, (wchar_t*)buf);   // передаётся ANSI строка. работает. тестировалось в WinXP SP2.
                // при портировании на другие версии ОС Windows может не работать.

        delete []buf;
    }

    MSG msg;
    while(GetMessage(&msg, 0, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}



Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  3.rtf 18,94 Kb
PM MAIL   Вверх
yngwie19
Дата 11.4.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

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



неужели никак нельзя эту дурацкую таблицу разместить ровно по ширине?
PM MAIL   Вверх
GremlinProg
Дата 11.4.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



пробуй так:
1. открой этот документ в word'е
2. выдели таблицу
3. в подменю Таблица -> Автоподбор щелкни на Автоподбор по ширине окна
4. сохрани как rtf
5. загрузи получившийся документ в ричэдит


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
yngwie19
Дата 11.4.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

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



GremlinProg, та же самая фигня. При выравнивании по центру - уезжает далеко вправо.
А можно как-нибудь определить ширину строки в RichEdit?
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.

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


 




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


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

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