Перейти к содержанию

Активность

Лента обновляется автоматически     

  1. Вчера
  2. Я ж говорю, я использовал его только для главного окна, потому не знаю, как работает для дочерних. Ну и тут классы версии винды 95 всё же несколько устарели, как мне кажется. Да и слои они явно не поддерживают. Может, тут надо было константу с более свежей версией поставить, не? А, нет, это просто константы для набора классов. Да, значит, для дочерних обязательно нужен манифест, если нет другого способа нужную версию общих контролов затащить.
  3. Может Microsoft теперь сменила схему. Я вчера попробовал по твоему совету WS_EX_LAYERED для дочерних элементов без записи в манифесте <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> , но с вызовом INITCOMMONCONTROLSEX icc; icc.dwSize = sizeof(INITCOMMONCONTROLSEX); icc.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&icc); - ничего не вышло, дочерние не отображались. Я на Windows 11 сейчас. Я бы рад использовать только InitCommonControlsEx, без манифеста. Для расширенных стилей я так понял в манифесте нужно прописать шестую версию
  4. Да, вполне возможно, я этот стиль использовал только для главного окна. Не только. Я точно помню, что работы лейеринга и расширенных стилей добивался именно с помощью вызова этой функции, а не манифеста.
  5. Последняя неделя
  6. InitCommonControlsEx как я понял нужно вызывать для загрузки Comctl32.dll. Чтобы была возможность использовать Tooltip, Toolbar, и им подобные. Без записи в манифесте <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> контролы со стилем WS_EX_LAYERED не будут отображаться совсем. Только лишь главное родительское окно, для которого по видимо эта возможность установлена по умолчанию. Ага, также при стиле WS_EX_LAYERED можно и у дочернего элемента изменять его собственную прозрачность. Исчезновение мерцания, как я понял из MSDN, связано с тем что система использует для компоновки финального изображения слои. Спасибо за помощь. Хорошо что все так хорошо закончилось.
  7. А, точно, я про это забыл Необязательно, можно в мейне на старте приложения вызывать InitCommonControls или InitCommonControlsEx. Будет тот же эффект. С помощью этой функции, примененной к главному окну, можно установить его прозрачность. Возможно, исчезновение мерцания - это побочный эффект.
  8. Всё же есть решение - Layered Windows Чтобы проект Visual Studio поддерживал Layered Windows, необходимо в файле манифеста указать следующее Главное окно и все его контролы нужно создать со стилем WS_EX_LAYERED. Далее для всех них нужно вызвать API функцию SetLayeredWindowAttributes. О всех подробностях реализации можно почитать на MSDN, ссылка вверху. Вот тестовый пример. Абсолютно никаких мерцаний. Ни у главного окна (оно использует здесь между прочим двойную буферизацию), ни у самих контролов.
  9. LIRW

    Terraria

    Terraria Просмотр файла Использование: Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бесконечная жизнь Бесконечная мана Бесконечный кислород Режим призрака Убийство с одного удара Бесконечные предметы Режим бога Супер прыжок Добавил LIRW Добавлено 11/25/21 Категория Трейнеры для PC игр  
  10. LIRW

    Terraria

    Версия 1.4.3.2

    3 раза скачали

    Использование: Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бесконечная жизнь Бесконечная мана Бесконечный кислород Режим призрака Убийство с одного удара Бесконечные предметы Режим бога Супер прыжок
  11. Partizan

    DYSMANTLE v1.0.1.5

    Лирв зацени скрипты, Может я не правильно делаю.
  12. Partizan

    DYSMANTLE v1.0.1.5

    01.Жизни 02.Скорость бега 03.Опыт и Уровень 04.Быстро ломать 05.Дюп в слотах 06.Убить с одного удара 07.Враг вас плохо видит 08.Метательное оружие не кончается 09.Ходить сквозь стены 10.Температура 11.Слоты 12.Zoom камеры 13.Время Скачать таблицу
  13. Проверил сейчас прозрачный текстовый контрол в Cheat Engine на перемещение (инициирование обновления его прозрачного фона) function UDF1_FormClick(sender) UDF1.CELabel1.Top = UDF1.CELabel1.Top + 5 end И знаете что? Он тоже мерцает! Это просто немыслимо...
  14. DieVis

    SteamWorld Dig 2

    Здравствуйте. А можете добавить в трейнер к текущим функциям, такие функции как: Обнуление времени игры Обнуление времени текущего сеанса игры Обнуление смертей за игру Можно все 3 в одно нажатие, чтобы всё обнулилось. ____________________________________________________ Найдены все Секреты (значение 150 например) Найдены все Артефакты (значение 43) Найдены все Шестерёнки (не знаю сколько их, пусть будет 100) Можно все 3 в одно нажатие.
  15. Отладочные тесты показали, что для ПРОЗРАЧНОГО текстового контрола, 100%-ое устранение мерцания невозможно. Вся загвоздка в стиле этого самого текстового контрола. Чтобы фон текстового контрола был прозрачным, нужно обязательно использовать стиль WS_EX_TRANSPARENT. При нем фон текстового контрола стираться всякий раз когда обновляется нижележащий элемент. Вот последовательность: 1) обновляется фон нижележащего элемента (допустим это главное окно приложения). Клиентская область текстового контрола соответственно тоже вся обновилась, в ней стало отображаться то, что находится под ней, но сам текст при этом теперь не виден, так как абсолютно вся область текстового контрола была обновленна 2) начинает рисоваться текст в текстовом контролле (пусть даже и с двойной буферизацией) Между первым и вторым пунктами и происходит исчезновение самого текста, то есть происходит мерцание. И это никак не пофиксить.
  16. Да, BitBlt в твоем примере просто копирует биты из одного DC в другой DC, без предварительного стирания фона этим же BitBlt. Я говорил про то, что если потянуть за уголок главного окна, то и ему, и всем его дочерним окнам, будут посланы сообщения WM_ERASE, потом WM_PAINT. То есть я говорил про то что фон будет стерт собщением WM_ERASE, но не самим BitBlt. Обязательно, если ничего не выйдет. Сперва потренируюсь на SS_OWNERDRAW.
  17. Нет, при блиттинге фон не стирается, поскольку блиттинг может быть разного типа. С помощью блиттинга, например, можно накладывать картинки по маске Возьми исходник из урока, да протестируй, проблемы-то нет ) Возможно, как раз потому, что для него срабатывает WM_ERASEBKGND
  18. Ага, я не то скопи-пастил. Хотел RDW_ERASENOW | RDW_ERASE. То есть я пробовал без RDW_ERASENOW | RDW_ERASE. Я смотрел все серии. Давно еще. Про буферизацию пересматривал на днях. Как я заметил на видео, ты не обрабатываешь сообщение WM_ERASEBKGND, возвращая TRUE. Для отмены стирания фона. case WM_ERASEBKGND: return TRUE; И в функции DrawFrame у тебя не установлен флаг RDW_ERASE, при вызове функции RedrawWindow. Наверно поэтому у тебя изображение не мерцает. Просто я подумал, как в твоем примере будет вести себя отображение, если начать изменять размер главного окна, потянув его за уголок. Ведь будет послано сообщение WM_ERASE и WM_PAINT для всех элементов окна, включая его самого. И по идее вначале будет стерт весь фон, а потом выполнен case WM_PAINT. В WM_PAINT у тебя используется глобальный backDC, и так как он всегда имеет в себе изображение, то BitBlt в WM_PAINT отработает корректно. Но перед этим будет стерт весь фон. И по идее должно произойти мерцание. Это меня немного сбило с толку, когда я пытался вникнуть в твою реализацию двойной буферизации. Я пробовал уже делать двойную буферизацию для самого главного окна, и параллельно для текстового контрола, но увы, он все равно мерцал. Я даже пробовал просто создавать дочернее окно, со стилем WS_EX_TRANSPARENT, и используя двойную буферизацию для него, функцией TextOut выводить строку. И все равно, даже и так мерцало. Буду пробовать сейчас через BS_OWNERDRAW . А потом, если не выйдет, через CustomDraw. Самое интересное, что ни один контрол не мерцает вообще, никогда. Только вот этот, текстовый.
  19. RDW_INVALIDATE убирать не надо. Ну и самый лучший вариант избавиться от мерцания - двойная буферизация. Суть - форму ты отрисовываешь на фоновый контекст, а по событию WM_PAINT фоновый контекст копируешь блиттингом на основной. Правда, с виндовыми контролами я так не делал, там я слегка по-другому делал. Поищу у себя в закромах, может, найду исходник одного из древних трейнеров, на котором я делал замену фона при нажатии на кнопку, но не факт, что оно у меня сохранилось. А по двойной буферизации можно посмотреть у меня на канале уроки по графике для винды.
  20. Попробовал убрать RDW_INVALIDATE. RDW_ERASE, - все равно мерцает. А возможно с BS_OWNERDRAW для кнопки добиться отображения только текста, без фона самой кнопки? Если да, то как сделать фон прозрачным? Через TransparentBlt? Например у меня под текстовым контролом будет какая-нибудь картинка.
  21. BS_OWNERDRAW для кнопки и обработка отрисовки в оконной процедуре (сообщение WM_PAINT) родительского окна. И для RedrawWindow достаточно RDW_INVALIDATE. RDW_ERASE делает стирание перед перерисовкой, как и RDW_ERASENOW. Возможно, они являются причиной мерцания.
  22. Пример кода мерцающего контрола. Если быстро перемещать ползунок прокрутки вверх-вниз, то будет видно как текстовый контрол мигает.
  23. Добрый день! Помогите пожалуйста, какой Gens лучше всего скачать для ромхаккинга? Разные версии пробовал, но где адреса не ищет, где отладка не работает или ее просто нет. Посоветуйте актуальный Gens на текущий момент. В начале топика не идет загрузка при попытке загрузить по ссылке топикстартера Заранее большое спасибо!
  24. Привет, как можно избавиться от мерцания текстового контрола при очень частом его обновлении? Использую обычный Static Control, созданный на главном окне вызовом функции CreateWindowExW. В родительской оконной процедуре возвращаю HOLLOW_BRUSH, в сообщении WM_CTLCOLORSTATIC, чтобы фон теста был прозрачным, то есть чтобы отображались только черные символы. ExStyle для Static Control устанавливаю на WS_EX_TRANSPARENT. А Style на WS_CLIPSIBLINGS. Для родительского окна Style ставлю на WS_CLIPCHILDREN. Затем начинаю для родительского окна часто вызывать функцию RedrawWindow(m_Owner.GetHWND(), NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN); и Static Text Control жутко мерцает.
  25. LIRW

    The Long Dark

    The Long Dark Просмотр файла Использование: Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бесконечная жизнь Бесконечные калории Нет жажды Нет голода Нет переохлаждения Бесконечная энергия Бесконечное топливо в лампе Бесконечный вес Нет урона персонажу Бесконечные предметы Бесконечная долговечность предметов Супер скорость Ps: Для функции "Без урона персонажу" сначала лечимся по полной. Затем включаем первые пять функций, что бы всё по максимуму было, и только потом перекрываем весь урон. Добавил LIRW Добавлено 11/23/21 Категория Трейнеры для PC игр  
  26. LIRW

    The Long Dark

    Версия Steam

    3 раза скачали

    Использование: Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бесконечная жизнь Бесконечные калории Нет жажды Нет голода Нет переохлаждения Бесконечная энергия Бесконечное топливо в лампе Бесконечный вес Нет урона персонажу Бесконечные предметы Бесконечная долговечность предметов Супер скорость Ps: Для функции "Без урона персонажу" сначала лечимся по полной. Затем включаем первые пять функций, что бы всё по максимуму было, и только потом перекрываем весь урон.
  27. lineage 2 essence Revision: 338 [LIVE] LANG: EU
    [ Build version: 2021-11-03 ]  Battle Cronicle
    L2exe + Engine.dll unpacked themida clean 100%
    [ unpacked - REVERSECODE-TEAM ]

    [ NOGG off game guard ][ off FROST MODULE ][ rsa patched ]
    [ Kill AwesomiumProcess ] [ customization ][verification is off]
    Sell - Personal Collection [ WTS PM ME ]

  1. Загрузить ещё активность
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.