singlepost

работа с неактивными окнами MDI в MFC << На главную или назад  

Проблема такая: нужно по нажатию команды меню делать одни и те же операции одновременно во всех окнах(то есть в активном и во всех неактивных). Для этого хочется получить контексты отображения этих окон. Кто нибудь в курсе как это делать? или есть другой способ?

48 ответов в теме “работа с неактивными окнами MDI в MFC”

  1. 14
    Дмитрий Гайдамович ответил:

    >> Ну… CMemDC это уже недокументированные внешние фичи.
    Да? А мужики-то и не знают…

  2. 13
    Мария Павлова ответил:

    Всё разрешилось намного проще UpdateAllViews(NULL;)
    Спасибо за помощь =)

  3. 12
    Александр Чигринец ответил:

    Ну… CMemDC это уже недокументированные внешние фичи.

  4. 11
    Дмитрий Гайдамович ответил:

    А еще лучше CMemDC

  5. 10
    Александр Чигринец ответил:

    Ну не нравится CWindowDC, есть CClientDC. :-)

  6. 9
    Дмитрий Гайдамович ответил:

    Маленькое уточнение: CWindowDC даст неклиентскую область, что должно Вас, Мафка Ангелочек Павлова весьма "порадовать" при первых опытах. Не советую туда лезть. Сами Microsoft не советуют (см. MSDN).

  7. 8
    Александр Чигринец ответил:

    Как мне представляется, самое разумное – научить каждое окно делать требуемое действие при получении определённого сообщения.
    А потом из главного окна посылать сообщение всем дочерним. Например при помощи SendMessageToDescendants
    Или руками перебирая окна при помощи GetWindow(GW_CHILD) GetNextWindow и посылая сообщение каждому.

    А контекст окна можно получить в любой момент, зная указатель на окно, при помощи класса CWindowDC.

  8. 7
    Дмитрий Гайдамович ответил:

    Да, так и нужно делать, как Алексей сказал. Рисуем в обработчике WM_PAINT. Про то, где именно хранить информацию – гляньте паттерн model-view-controller: простая до невозможности схема, тем не менее наводящая порядок в мозгах.

  9. 6
    Алексей Руденко ответил:

    не силен во всем этом, но, все-таки, может хранить где-то в памяти информацию про то, какая фигура(фигуры) должна быть нарисована, чтобы все окна могли к ней обратиться, а затем в событии, кажется OnPaint каждого окна читать информацию про фигуры и рисовать?

  10. 5
    Мария Павлова ответил:

    Ну, к примеру, в окнах, которые видны, но не активны на данный момент. И в свёрнутых аналогично (то есть после проведения операции результат проявляется на всех окнах. В данном случае это рисование фигуры)

  11. 4
    Дмитрий Гайдамович ответил:

    То есть, в том числе в окнах, которые свёрнуты и фактически не видны? Тогда какие могут быть контексты отображения, если отображения нет? А можно уточнить, что это за операции?

  12. 3
    Мария Павлова ответил:

    помогите, плииииз))

  13. 2
    Мария Павлова ответил:

    В том то и проблема. Нужно обязательно использовать mfc(

  14. 1
    Подмогаев Свят ответил:

    может быть API ??

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.