Элементы меню мерцают при изменении размера - PullRequest
1 голос
/ 09 января 2009

Спасибо вам, ребята, за вашу помощь, это беспокоит меня уже пару дней.

Я использую Windows Vista и пишу свою программу на C ++, используя прямой API Windows (без MFC).

Когда я изменяю размер окна, элементы меню мерцают. Мой класс окна НЕ использует CS_HREDRAW или CS_VREDRAW. Я использую двойную буферизацию для КЛИЕНТСКОЙ ОБЛАСТИ, поэтому клиентская область не мерцает, только меню в не клиентской области.

Теперь я могу избавиться от этого, обрабатывая WM_NCPAINT самостоятельно, но я действительно не хочу обрабатывать все рисунки вне клиентской области. Я также обрабатываю WM_ERASEBKGND, но это также помогает только для CLIENT AREA. Я действительно в растерянности относительно того, как это исправить. Я много искал в Google, прочитал и перепробовал все

http://catch22.net/tuts/flicker

предложил. Еще раз спасибо, ребята. Надеюсь, вы поможете мне понять, почему у меня мерцают пункты меню (хотя ни строка меню, ни границы, ни строка заголовка окна).

1 Ответ

2 голосов
/ 11 января 2009

Я рад сообщить, что исправил проблему! Я просто передаю WS_EX_COMPOSITED на создание окна со строкой меню, используя CreateWindowEx ()! Прекрасно работает, а также заботится о мерцании дочерних окон. Думаю, я поделюсь этим с вами, ребята, на тот случай, если вы когда-нибудь испытали такое же раздражающее мерцание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...