-
Постов
4 023 -
Зарегистрирован
-
Победитель дней
42
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент Xipho
-
Чел, тебя потроллили. Это был сарказм. Каждый труд должен быть оплачен, в этом суть. Как говорится, не хочешь - давай как хочешь. А хочешь - так давай. Поясню 1. Хочешь плюшки - плати 2. Не хочешь платить - будь доволен тем, что есть 3. Хочешь плюшки и не хочешь платить - сделай сам. Потрать 1-4 часа времени, и сделай. значит просто трудно заплатить, заплатил бы автору, а он в ответ сделал бы. Возможно, я тебе открою одну страшную тайну, но прикинь - еда бесплатно не достается, и одной благодарностью, увы, сыт не будешь.
-
Все просьбы об обновлении через киви-кошелек автору чита.
-
Я ж говорю, я использовал его только для главного окна, потому не знаю, как работает для дочерних. Ну и тут классы версии винды 95 всё же несколько устарели, как мне кажется. Да и слои они явно не поддерживают. Может, тут надо было константу с более свежей версией поставить, не? А, нет, это просто константы для набора классов. Да, значит, для дочерних обязательно нужен манифест, если нет другого способа нужную версию общих контролов затащить.
-
Да, вполне возможно, я этот стиль использовал только для главного окна. Не только. Я точно помню, что работы лейеринга и расширенных стилей добивался именно с помощью вызова этой функции, а не манифеста.
-
А, точно, я про это забыл Необязательно, можно в мейне на старте приложения вызывать InitCommonControls или InitCommonControlsEx. Будет тот же эффект. С помощью этой функции, примененной к главному окну, можно установить его прозрачность. Возможно, исчезновение мерцания - это побочный эффект.
-
Нет, при блиттинге фон не стирается, поскольку блиттинг может быть разного типа. С помощью блиттинга, например, можно накладывать картинки по маске Возьми исходник из урока, да протестируй, проблемы-то нет ) Возможно, как раз потому, что для него срабатывает WM_ERASEBKGND
-
RDW_INVALIDATE убирать не надо. Ну и самый лучший вариант избавиться от мерцания - двойная буферизация. Суть - форму ты отрисовываешь на фоновый контекст, а по событию WM_PAINT фоновый контекст копируешь блиттингом на основной. Правда, с виндовыми контролами я так не делал, там я слегка по-другому делал. Поищу у себя в закромах, может, найду исходник одного из древних трейнеров, на котором я делал замену фона при нажатии на кнопку, но не факт, что оно у меня сохранилось. А по двойной буферизации можно посмотреть у меня на канале уроки по графике для винды.
-
BS_OWNERDRAW для кнопки и обработка отрисовки в оконной процедуре (сообщение WM_PAINT) родительского окна. И для RedrawWindow достаточно RDW_INVALIDATE. RDW_ERASE делает стирание перед перерисовкой, как и RDW_ERASENOW. Возможно, они являются причиной мерцания.
-
Ты вклиниваешься в системную библиотеку. Не надо так делать.
-
Я вообще не прошу финансовую помощь. Я лишь говорю, что если ты что-то хочешь, сверх того, что тебе предоставлено бесплатно, будь готов заплатить. И да, кнопка донатов, как показала практика, несостоятельна. Потому что из нескольких сотен любителей качать трейнеры донаты закидывало человек 5. Потому я эту кнопку и убрал с форума, и потому убрал спонсорскую подписку на канале. Но мы ушли от темы.
-
Очень круто сказал! Что ж, раз для тебя имеет значение намерение помогать людям, а деньги не имеют значение, тогда помоги LIRW'у деньгами, чтобы у него появилось намерение потратить время и силы на изготовление трейнера для тебя )) А то все вы такие - халявщики - любите забывать про то, что создание трейнера - это дело не пяти минут, для этого требуется время, усидчивость и знания. А время и знания в наше время дорого стоят.
-
Как он тебе будет делать, если у него нет этой игры в стиме? Ты ему ее купишь?
-
Через циклы, ага. А можно и каким-нибудь фоновым воркером асинхронно это делать. Но это пока не твой уровень, раз у тебя возникают такие вопросы. В будущем обязательно разберешься ) Ты можешь открыть процесс перед стартом цикла и закрыть его по завершении цикла. А можешь открыть процесс при старте твоего трейнера, а закрыть перед выходом из трейнера - на твое усмотрение. Думаю, второй вариант будет предпочтительнее, если ты собираешься делать больше одного цикла (то есть, мониторить/морозить больше одного значения)
-
Хороший вариант. Но ты и не говорил, что трейнер не работает. Я хочу добиться ответа от автора претензий, а именно ответа, как он понял, что трейнер не работает, если горячие клавиши не использовал.
-
Как ты их мог использовать, если у тебя нет numlock'a и, соответственно, numpad'a? Это не те циферки, что над буковками, это те циферки, что на цифровом блоке справа. Раз у тебя его нет, то как ты мог их нажимать?
-
А что именно не работает? Ты нажимаешь клавишу, которая написана в трейнере (на цифровой клавиатуре при включенном Numlock), и ничего не происходит? Распиши сценарий по шагам, как именно ты используешь трейнер, и в какой именно момент у тебя не срабатывают опции. Например 1. Запустил игру. Свернул игру 2. Запустил трейнер 3. Нажал горячую клавишу, описанную в трейнере для определенной опции 4. Опция не сработала, но игра выдала ошибку и завершилась или 4. Опция не сработала, ничего не произошло, в игре ничего не изменилось или 4. Опция сработала, но игра выдала ошибку и завершилась или 4. Опция не сработала, взорвался компьютер или 4. Не включайте опцию - галактеко апасносте!!! Вот эту фразу я вообще не понял. Какой набор цифр? На цифровом блоке клавиатуры? Разумеется, он там будет постоянен. Ну, если ты кнопочки местами не поменяешь. Так, падажжи-ка. Если ты его никак не включаешь, то почему утверждаешь, что он не работает? Как ты можешь знать, работает он, или нет, если ты его даже не включаешь?
-
Нужно понимать, что винапи проектировался еще во времена 16-битной винды, и никак не был рассчитан на то, что его будут натягивать на ООП. Отсюда необходимость в огромном количестве всевозможных костылей вокруг этого дела. Но, если так уж хочется упарываться, почитай книгу Фень Юаня "Программирование графики для Windows". Основная тема у него там, конечно же, не оборачивание окошек в ООП, но это он делает. Возможно, там почерпнешь какие-нибудь приемы полезные.
-
У тебя есть оконная процедура. Если для контрола ты вызовешь InvalidateRect, то в оконной процедуре ты можешь отловить WM_PAINT и перерисовать контрол. Только у контрола должен быть OWNERDRAW флаг, если мне не изменяет память. Но, имхо, заниматься этим - неблагодарное дело. Есть фреймворки, на них можно решать задачи нормально. Без кучи огородов и костылей.
-
Возможно. Я не знаю, какой именно адрес ты хочешь вытянуть Вообще не понял вопрос Как ты захочешь делать, так и будешь делать.