-
Рендерю дополнительную кнопку в заголовке окна. Для того чтобы это работал корректно с включенным Aero для окна принудительно отключается прозрачность: procedure EnableNCRendering(hwnd:HWND); var ncrp:DWord; osvi:OSVERSIONINFOA; begin osvi.dwOSVersionInfoSize := sizeof(OSVERSIONINFOA); GetVersionExA(osvi); if osvi.dwMajorVersion>5 then begin ncrp := DWMNCRP_DISABLED; DwmSetWindowAttribute(hwnd, DWMWA_NCRENDERING_POLICY, @ncrp, sizeof(ncrp)); end; Проблема в том, что рандомно слетает вообще отрисовка заголовка у окна. Обычно все нормально, но раз в несколько запусков вместо Caption и системных кнопок образуется просто белая полоса. Что я делаю не так?
-
> Рендерю дополнительную кнопку в заголовке окна. > Что я делаю не так? херней страдаеш,делаеш нестандартный,никому кроме тебя ненужный интерфейс
-
Как показала практика - очень правильный и нужный интерфейс делаем. С нашим софтом, благодаря интерактивной системе помощи народ начинает эффективно работать в 4-5 раз быстрее чем в аналогичных инструментах у других разработчиков. Доказано практикой. Еще ниразу не слышал чтобы пользователи жаловались на лишнюю кнопку в кэпшене, зато если кнопки вдруг нет - нас просят ее добавить.
-
абалдеть нифстать,про F1 они никогда не слышали?
-
Пользователи не используют F1. Пользователи не читают мануалов. Если вы не знаете этого - значит вы никогда не делали сколь либо серьезного софта. Пользователи все исследуют методом тыка, мы не боремся с этим, а используем. И это прекрасно работает.
Открою вам страшную тайна: 1) Пользователи не пользуются F1. 2) Справка в стандартном виде отпугивает пользователей. Поскольку содержит плохо структурированный набор информации. 3) Пользователь лучше всего воспринимает подсказки с минимум текста, небольшие наглядные картинки и простенькие анимации. 4) действуя стереотипами(типа того, что интерфейс должен быть только таким как задумали создатели ОС) вы никогда не сделаете ничего нового, а будете просто повторять ошибки предшественников.
-
> Справка в стандартном виде отпугивает пользователей. Поскольку > содержит плохо структурированный набор информации.
Это проблема разработчиков справки. Хорошо сделанную справку очень даже читают. Сам видел.
По существу вопроса: как мне удалось установить, в дельфи по приходу сообщения WM_SETTINGCHANGE происходит перерисовка, причём все стили и темы сбрасываются и устанавливаются по умолчанию. Борьба - через перехват и восстановление состояния после обработки этого сообщения.
-
Ок. Попробую копать в эту сторону. Спасибо за наводку.
-
В любом случае надо искать того, кто вклинивается в процесс прорисовки, а там уже искать, откуда дует ветер.
-
> Еще ниразу не слышал чтобы пользователи жаловались на лишнюю > кнопку в кэпшене, зато если кнопки вдруг нет - нас просят > ее добавить.
Еще как жалуются, были некоторые программы с дополнительной кнопкой, народ сильно на них ругался.
И конечно справедливо, что просят сделать что то странное.
-
> @!!ex (24.01.2012 22:17:04) [4]
Открою тайну, внизу окна находится областьнотификаций, и она поддерживает ToolTips, это такой желтый прямоугольник, всплывающий когда надо. Открою еще один секрет, также как не нажимают F1, также и не нажимают на дополнительную кнопку в окне, не нажимают даже на кронку [?] в диалогах, не зря же Микрософт убрал ее в новых программах, а них есть лаборатория по иследованию интерфейсов, в отличии от тебя.
-
У меня есть фидбек от пользователей. :) На кнопку Help в Caption у нас тыкают и активно. Возможно это связанно с тем, что народ видит кнопку, которой нигде больше никогда не видел. ToolTips мы и используешь.
-
если такой креативный,почему не сделать свой заголовок окна ? и пихай туда, хоть кнопки, хоть едиты, чем бодаца с виндой кто кого перерисует...
-
> [8] Anatoly Podgoretsky © (25.01.12 10:05)
Это понятия 2002 года. Вы давно в интерфейс современного MS Office заглядывали? с аеро всякие эти дополнительные кнопочки очень не плохо сочитаются.
-
> [0] @!!ex © (24.01.12 16:08)
да, скорее всего рисовать вручную придется, ну т.е. полу вручную.
-
> если такой креативный,почему не сделать свой заголовок окна ? Моя цель не в том, чтобы сделать "никак у всех". А в том, чтобы реализовать нужные нам плюхи. Винда вполне позволяет это сделать, достаточно ей сказать что хочешь рисовать на кэпшене. Я так понимаю сейчас приходится бодаться не с виндой, а с дельфи.
>да, скорее всего рисовать вручную придется, ну т.е. полу вручную. То есть получать тему и вручную ее рисовать? :(
-
> То есть получать тему и вручную ее рисовать? Это несложно, смотри модули Theme, uxTheme. Единственно меня смущает -- Aero при наведении курсора кнопку как-то подсвечивает. Как это сделать, пока непонятно.
|