![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
а кнопки у тебя над графиком располагаются? тогда установи флаг родителя вырезать_область_детей:
Это сообщение отредактировал(а) mes - 23.7.2008, 22:45 |
|||
|
||||
| Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Нет, у меня кнопки непосредственно в области рисования, под графиком распологаются. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
я и имел ввиду, что в области рисования - разницы то нет какое расположение у них по отношению к графику - главное, что перерисовка затрагивает область дочерних окон.. Решение проблемы - использование флага из предыдущего поста Это сообщение отредактировал(а) mes - 23.7.2008, 23:04 |
|||
|
||||
| Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Ок. Я попробую=)
|
|||
|
||||
| Kostik88 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
mes, я попробовал изменить стиль класса окон с помощью ф-ции SetClassLong :
для диалога(родителя):
и для кнопки (ребёнок):
но мигание не исчезло. Может я чтото не так делаю? |
||||
|
|||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
1. WS_xxx - это стили окна, а не класса окна: не SetClassLong, а SetWindowLong
2. такие глобальные стили, как WS_CLIPCHILDREN обычно не выставляются функцией, а добавляются при инициализации окна 3. стиль - это флаг, или набор флагов, его нужно ставить такой комбинацией: new_style = old_style | style_flag, а не простым присваиванием, т.е. нужно дополнительно получить старые стили (GetWindowLong) 4. если ты уверен, что твое приложение будет запускаться только под OS XP, то все проблемы с морганием решит всего лишь один дополнительный стиль WS_EX_COMPOSITED, дешево и сердито Это сообщение отредактировал(а) GremlinProg - 24.7.2008, 16:18 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Можно увидеть каконибудь примерчик, если не трудно, я несовсем понял? 0о Это сообщение отредактировал(а) Kostik88 - 24.7.2008, 17:02 |
|||
|
||||
| GremlinProg |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
для диалога в редакторе ресурсов есть соответствующая галочка "Clip children", но можно и вручную задать любые флаги, для этого открываем файл *.rc в любом текстовом редакторе и находим ресурс диалога, я покажу пример на стандартном about-box'е:
здесь мы видим две ключевые строчки: STYLE и EXSTYLE чтобы дополнительно включить какой-нибудь стиль нужно добавить его в соответствующую строку через операцию or(|), например сейчас я добавлю дополнительный стиль, которого нет в редакторе форм:
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||||||
|
|||||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
2. установить флаг в CreateStruct перед вызовом функции CreateWindow или в редакторе ресурсов (как показал GremlinProg) 3. типа такого: SetWindowLong(hDlg,GCL_STYLE, GetWindowLong(hDlg,GCL_STYLE ) | WS_CLIPCHILDREN ); Это сообщение отредактировал(а) mes - 24.7.2008, 17:19 |
|||
|
||||
| Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Спасибо огромное mes, GremlinProg. Вы меня опять выручили.
Всё заработало |
|||
|
||||
| Letchik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 5.1.2010 Где: UGTB Репутация: нет Всего: нет |
Не буду новую тему открывать и спрошу здесь
Говорят, что после процедуры рисования надо всегда удалять все объекты (RleaseDC, DeleteDC и т.д.). Только не понятно как тогда работает двойная буферизация. Ведь все, что я нарисовал должно храниться в отдельном контексте устройства, а мы его берём и удаляем... Ничего не понял!.. И почему нельзя в обработчике WM_CREATE создать контекст устройства не удаляя его до завершения программы? |
|||
|
||||
| ForceKeeper |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 17.3.2010 Где: Минск Репутация: нет Всего: нет |
Нужна помощь с устранением мерцания статус бара (стандартный). В стиль главного окна добавил WS_CLIPCHILDREN, сама основная часть бара мерцать перестала, но вот созданные нам нем две секции с текстом как творили беспредел, так и творят. Пробовал добавлять клипчилдрен при создании бара
(CreateStatusWindow (WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, "Готов", hwnd, ID_STATUS)) - не помогло. |
|||
|
||||
| guenko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 26.5.2010 Репутация: нет Всего: нет |
В InvalidateRec последний параметр используй FALSE
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |