Вот такой вопрос меня мучает

Тема в разделе "WASM.BEGINNERS", создана пользователем blueboar, 10 июн 2008.

  1. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Как в программах (скажем в NERO) делают десктоп - на котором куча баттонов, контролов итд. Я так понимаю мы делаем RegisterClass + CreateWindow - там иконка, менюшка, курсор, процедура работы с окном и еще куча параметров. Но где указывается собственно ЧТО на окне будет нарисовано? Или это делается при первом вызове оконной процедуры? Тогда какими функциями это делается из нее?
     
  2. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Все просто. Почитай про WM_PAINT.
     
  3. Everhest

    Everhest New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2007
    Сообщения:
    105
    Все просто. Почитай про WM_PAINT.

    Ага и еще как я думаю там создается не один класс и каждый имеет свои параметры.
     
  4. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Хорошо, но вот сейчас разбираю MFC-шную прогу, в ней сообщение WM_PAINT не перехватывается. А все рисуется. Хотя я не спорю в самой MFC оно может и обрабатывается но там же только независимая от приложения часть?
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Когда одно окно затирает часть другого в результате юзерских операций, при восстановлении ему пошлют WM_PAINT и оно должно будет отрисовать по крайней мере затертую часть. Кроме контролов - их винда отрисовывает сама (неклиентские части).
     
  6. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Я имею в виду откуда берутся контролы в некой MFC-шной проге если WM_PAINT она не обрабатывает? Хоть раз то получается должна обработать чтоб накидать контролы в окно?
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Если ты про диалоговое окно, то его контролы винда сама отрисовывает. Даже без MFC если создавать через винапи DialogBoxParam.
    Такая же фигня в одно/многодокумнентных приложениях MFC на базе CFormView - там тоже можно накидать контролы и винда/MFC (не помню точно кто из них) будет самостоятельно отрисовывать их. Тебе лишь сообщения обрабатывать остается.
     
  8. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Нет, у меня сначала создается класс, потом окно, потом насколько я помню Document Template, причем вроде MDI
     
  9. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    В общем примерно разобрался. Приложение перехватывает метод MFC CWnd::Create - и там создает свои контролы. Так может быть?