Суперклассинг? (Создание контрола для просмотра текста)

Тема в разделе "WASM.BEGINNERS", создана пользователем kDenis, 30 июн 2007.

  1. kDenis

    kDenis New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2006
    Сообщения:
    14
    Мне нужен класс, при помощи которого можно дать возможность пользователю просмотреть специфический текст. Специфичность его в следующем:
    1. конец строки 0x0A, в отличие от стандарта виндовс (0x0A0D или 0x0D0A, точно не помню...)
    2. в тексте встречается символ 0x0D, который говорит о том, что после него до следующего такого-же символа - служебная информация. А именно - описание шрифта. Тоесть, фактически, нужно будет интерпретировать это описание, создать на основании него шрифт и весь текст дальше (пока не будет задан другой параметр) выводить этим шрифтом.

    В ответ хочу получить описание методов создания такого класса (на какие сообщения системы нужна нестандартная реакция? или на какие сообщения вообще надо реагировать при создании нового класса?), и общее описание действий при получении сообщения WM_PAINT этим классом. Наверно придется самому управлять полосой прокрутки?..

    Заранее спасибо.
     
  2. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    В винде 0d0a. 0a0d насколько я помню в маке
     
  4. kDenis

    kDenis New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2006
    Сообщения:
    14
    G13
    читал я это...

    другой, более конкретный вопрос:
    как организовать прокрутку?
    мой класс создан на основе STATIC (или лучше выбрать чего другое?). Высота строк может быть разная у разных строк. Какие могут быть общие принципы организации прокрутки? Добавил стиль WS_VSCROLL, но как теперь управлять автоматически созданной полосой прокрутки?
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Я бы написал свой класс, ибо это не так сложно.
    Сообщений обрабатывать тебе много не надо.
     
  6. kDenis

    kDenis New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2006
    Сообщения:
    14
    n0name
    Какие конкретно сообщения нужно обрабатывать, если писать свой класс?

    PS: старый вопрос еще в силе: как организовать прокрутку?
     
  7. kDenis

    kDenis New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2006
    Сообщения:
    14
    Если кому интересно, пока-что я себе это представляю так:
    1. Создаю Битмэп функцией CreateCompatibleBitmap, там все рисую.
    2. При получении WM_PAINT копирую в ДевайсКонтекст нужный кусок БитМэпа.

    С прокруткой почти разобрался, вот только как копировать... должна-же быть какая-то API-функция?..
     
  8. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    BitBlt
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    http://catch22.net/tuts/editor01.asp

    Конечно тебе можно сильно упростить сорц, но многое там уже описано довольно хорошо.
    Я про серию в целом, а не про первый урок.
     
  10. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Great
    В маке x0D.

    WM_HSCROLL, WM_VSCROLL. «If an application scrolls the content of the window, it must also reset the position of the scroll box by using the SetScrollPos function.»