В файл ресурсов добавляю манифест-файл, компилирую ресурсы, линкую, а программа почему-то по прежнему отображается в 'старом' стиле. В чем тут дело может быть?
Файл Keys.manifest: Добавляю в ресурсы так: IDR_MANIFEST RT_MANIFEST "Keys.manifest" Функцию InitCommonControls вызываю в самом начале
Не помогает. Единственный случай, когда у меня манифест работает, это если сохранять его в виде Keys.exe.manifest.
ARMICRON, СПАСИБО. Я тут целый день с RadAsm'ом мозги себе ****. Что только не пробовал... Потом решил зайти на форум и поискать ответ.
rmn RTFM. Это версия программы. Кстати, для работы манифеста под х64 надо в processorArchitecture поставить "*".
У меня довольно странная проблема. Не отображается фокус (рамка из точек по краю кнопки) на кнопках в стиле XP при запуске программы двойным щелчком мыши (Far, Windows). При запуске по нажатию Enter фокус отображается. Без manifest'а все рисуется нормально при любом варианте запуска.
А у меня проблема с манифетсами от приложений вот в чём: программа запускается нормально, работает хорошо, но при выключении программы вылетает ошибка аварийного выхода. Что не так? InitCommonControls я использую, в этом ошибки нет. Говорят что всё дело в неправильной выгрузке формы. (не End'ом, а Unload'ом нужно, типа, выйти.) Так ли это?
Alndr, при помощи RusFAQ лекарство найдено. Ответ из форума: >>Отвечает: Сандров Алекс >>Здравствуйте, alserlti! >>За скрытие-показ фокуса отвечают 2 вещи: >>1. Это настройка, где-то должна быть в настройках экрана, там где спецэффекты, >>отвечает за то, чтобы фокус был или не был при поднятии формы >>2. Это сообщение WM_UPDATEUISTATE, которое может управлять показом-скрытием >>фокуса Итак, пункт 1 к нам не относится, а из пункта 2 находим решение: SendMessage (hWnd, WM_UPDATEUISTATE, (UISF_HIDEFOCUS<<16)|UIS_CLEAR, 0); Но лучше, чтобы не было аналогичного глюка с акселераторами, так: SendMessage (hWnd, WM_UPDATEUISTATE, ((UISF_HIDEFOCUS|UISF_HIDEACCEL)<<16)|UIS_CLEAR, 0);