Отрисовка GUI в MFC.
От: Аноним  
Дата: 06.07.12 04:57
Оценка:
Кто может посоветовать книжку или статью по отрисовке GUI.

Спасибо.
Re: Отрисовка GUI в MFC.
От: Stanislav V. Zudin Россия  
Дата: 06.07.12 05:12
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Кто может посоветовать книжку или статью по отрисовке GUI.


Годится любая книжка из серии "Освой самостоятельно за ХХ дней".
Ключевые слова: WM_PAINT, GDI, CDC, CPaintDC (раз уж говорим о MFC).
Например вот
_____________________
С уважением,
Stanislav V. Zudin
Re[2]: Отрисовка GUI в MFC.
От: Аноним  
Дата: 06.07.12 06:50
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, Аноним, Вы писали:



А>>Кто может посоветовать книжку или статью по отрисовке GUI.


SVZ>Годится любая книжка из серии "Освой самостоятельно за ХХ дней".

SVZ>Ключевые слова: WM_PAINT, GDI, CDC, CPaintDC (раз уж говорим о MFC).
SVZ>Например вот

Спасибо. Это уже освоено. У меня больше интересует ключевое слово WM_ERASEBKGND,
что бы оптимизировать отрисовку большого количества дочерних окон.
Re[3]: Отрисовка GUI в MFC.
От: Stanislav V. Zudin Россия  
Дата: 06.07.12 09:49
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Stanislav V. Zudin, Вы писали:


SVZ>>Здравствуйте, Аноним, Вы писали:



А>>>Кто может посоветовать книжку или статью по отрисовке GUI.


SVZ>>Годится любая книжка из серии "Освой самостоятельно за ХХ дней".

SVZ>>Ключевые слова: WM_PAINT, GDI, CDC, CPaintDC (раз уж говорим о MFC).
SVZ>>Например вот

А>Спасибо. Это уже освоено. У меня больше интересует ключевое слово WM_ERASEBKGND,

А>что бы оптимизировать отрисовку большого количества дочерних окон.

Гм, WM_ERASEBKGND вместе с "большим количеством дочерних окон" — интересное сочетание.
Скины?
Т.к. задача не ясна, а ты не колешься, то для начала напомню про флаг WS_CLIPCHILDREN.

Если дочерних контролов действительно много и это действительно необходимо, то возможно стоит перейти на windowless контролы. Например посмотреть в сторону htmlayout. С MFC оно хорошо стыкуется.
_____________________
С уважением,
Stanislav V. Zudin
Re: Отрисовка GUI в MFC.
От: MasterZiv СССР  
Дата: 06.07.12 10:19
Оценка: +3
On 07/06/2012 08:57 AM, Аноним 717 wrote:

> Кто может посоветовать книжку или статью по отрисовке GUI.


Фень Юань, Великий Мастер WinGUI.
Posted via RSDN NNTP Server 2.1 beta
Re: Отрисовка GUI в MFC.
От: AlexGin Беларусь  
Дата: 06.07.12 13:50
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Кто может посоветовать книжку или статью по отрисовке GUI.


А>Спасибо.


Статей очень много тут: codeproject и тут codeguru,
а что касается книги — ИМХО самое толковое вот это:
http://progbook.ru/c/166-kruglinski_programmirovanie_na_microsoft_visual_c.html
Re[2]: Отрисовка GUI в MFC.
От: AlexGin Беларусь  
Дата: 06.07.12 13:56
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>On 07/06/2012 08:57 AM, Аноним 717 wrote:


>> Кто может посоветовать книжку или статью по отрисовке GUI.


MZ>Фень Юань, Великий Мастер WinGUI.


+100500
Был еще очень толковый двухтомник Чарльза Петзольда — Программирование для Windows.

Но это все больше по Win-API, по MFC — была отличная книжка авторов Круглинский, Уингоу, Шефферд.
Re[2]: Отрисовка GUI в MFC.
От: MasterZiv СССР  
Дата: 06.07.12 15:12
Оценка:
On 07/06/2012 05:50 PM, AlexGin wrote:

> а что касается книги — ИМХО самое толковое вот это:

> http://progbook.ru/c/166-kruglinski_programmirovanie_na_microsoft_visual_c.html

На самом деле надо отделять программирование GUI в Win32/64/16 от MFC, поскольку
MFC кроме предоставления каких-то утилит, достаточно полезных в общем, особенно
ничего не делает для того, чтобы как-то изменить программирование GUI -- этим
он кстати и хорош, потому что ничего не запрещает делать и ничего не скрывае.
Только помогает.
Так что надо искать две книги -- одну по GUI/Win32, другую -- по MFC.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Отрисовка GUI в MFC.
От: Аноним  
Дата: 11.07.12 03:54
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

А>>Спасибо. Это уже освоено. У меня больше интересует ключевое слово WM_ERASEBKGND,

А>>что бы оптимизировать отрисовку большого количества дочерних окон.

SVZ>Гм, WM_ERASEBKGND вместе с "большим количеством дочерних окон" — интересное сочетание.

SVZ>Скины?
SVZ>Т.к. задача не ясна, а ты не колешься, то для начала напомню про флаг WS_CLIPCHILDREN.

SVZ>Если дочерних контролов действительно много и это действительно необходимо, то возможно стоит перейти на windowless контролы. Например посмотреть в сторону htmlayout. С MFC оно хорошо стыкуется.


Ситуация в следующем.
Имеется самописный сплитер (стиль сплитера WS_CLIPSIBLINGS | WS_CLIPCHILDREN).
В правой части которого размещается окно(стиль окна WS_CLIPSIBLINGS). Окно содержит стандартные элементы управления и OwnerDraw лист-контрол. В процессе работы периодически в Окно прилетает WM_ERASEBKGND . Оно приходит на изменения размера и еще в некоторых случаях (например после того как пропадает тул-тип на лист-контроле). Если я оставляю обработку WM_ERASEBKGND стандартную, то после пропадания тул-типа остается очищенная область лист-контрола и перерисовка лист-контролу не приходит.
1-ый вариант:
В обработчик WM_ERASEBKGND Окна я добавил принудительную перерисовку лист-контрола.
Все Ок! Но выяснилось НО, когда подключаемся удаленно то видим, что лист-контрол после каждого тул-типа заметно перерисовывается(мерцает).
2-ой вариант:
В обработчике WM_ERASEBKGND Окна я убрал перерисовку и всегда возвращаю TRUE. Мерцание прекратилось. Возникла другая проблема. Когда мы уменьшаем размер Окна сплитером, т.е. сдвигаем его вправо, лист-контрол сдвигается вправо и заезжает на ту область окна которую лист-контрол не занимает.
При этом лист-контрол сам себя корректно отрисовывает в новых размерах. Когда увеличиваем размер окна, т.е. двигаем сплитер влево, то Окно перерисовывается корректно и мусор исчезает.

По требованию использовать windowless контролы нельзя.

Во в связи с этим мне бы и хотелось узнать больше про WM_ERASEBKGND и про механизм перерисовки.
Re: Отрисовка GUI в MFC.
От: MentorX  
Дата: 11.11.13 13:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Кто может посоветовать книжку или статью по отрисовке GUI.

А>Спасибо.

http://msdn.microsoft.com/en-us/library/ms533798(v=VS.85).aspx
Re[5]: Отрисовка GUI в MFC.
От: kolobok0  
Дата: 13.11.13 23:07
Оценка:
А>Во в связи с этим мне бы и хотелось узнать больше про WM_ERASEBKGND и про механизм перерисовки.

если сейчас не глючу, то надо идти в сторону перерисовки не всей области контролла, а только той части, которая видна пользователю. При этом время отрисовки существенно сокращается (ну это и понятно — экран же не бесконечен)

(круглый)
Re: Отрисовка GUI в MFC.
От: MasterZiv СССР  
Дата: 21.11.13 14:51
Оценка: +1
А>Кто может посоветовать книжку или статью по отрисовке GUI.

Рекомендую книгу великого Фень Юаня, если ещё найдёшь конечно.
MFC тут практически ни при чём, он очень мало помогает при рисовании.
Всё ведётся через объекты GDI, а в MFC только прямые 1:1 враперы над объектами GDI.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.