Писать графикой в хидере окна

Тема в разделе "WASM.WIN32", создана пользователем rav, 3 дек 2005.

  1. rav

    rav New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2004
    Сообщения:
    159
    Адрес:
    Москва
    Всем доброго времени суток.



    Никто не смог бы подсказать, как можно писать графическими функциями (типа DrawText) в хидере окна (а не стандартом через SetWindowText).
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    rav

    wm_ncpaint?
     
  3. pas

    pas New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2003
    Сообщения:
    330
    Адрес:
    Russia
    rav

    Может лучше сделать окно совсем без заголовка и рисовать его самостоятельно?
     
  4. The Svin

    The Svin New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2003
    Сообщения:
    665
    Адрес:
    Russia
    Писать очень просто.

    1. Нужно использовать не GetDC а GetWindowDC, в этом случае она даст тебе контекст отображения всего окна, а не только клиентской части.

    2. Получить метрики и сделать геометрические вычисления для позиционирования текста (ну чтоб не затёр чего не нужно или не залез куда не нужно).



    3. Рисуй дальше так же как рисуешь и в клиентской части.



    Куда весить сообщение зависит от стиля класса.

    Но обычно удобно в WM_PAINT, только не между BeginPaint-EndPaint, а например до их обработки, получив DC через GetWindowDC и отпустив через ReleaseDC, а потом уже вызывая BeginPain для того чтобы рисовать если надо в клиентской части.
     
  5. rav

    rav New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2004
    Сообщения:
    159
    Адрес:
    Москва
    The Svin

    Спасибо. Этот способ работает. Правда, непонятно, как писать строчку без затирания фона.
     
  6. angren

    angren New Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    19
    HDC dc = GetWindowDC(...);

    SetBkMode(dc, TRANSPARENT);
     
  7. rav

    rav New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2004
    Сообщения:
    159
    Адрес:
    Москва
    Понял. Большое спасибо.