![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DWM не всегда нормально отключается прозрачность у окна
@!!ex © (2012-01-24 16:08:00)Рендерю дополнительную кнопку в заголовке окна.
Для того чтобы это работал корректно с включенным 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 и системных кнопок образуется просто белая полоса.
Что я делаю не так?
CRLF (2012-01-25 19:54:00) [1]
> То есть получать тему и вручную ее рисовать?
Это несложно, смотри модули Theme, uxTheme. Единственно меня смущает -- Aero при наведении курсора кнопку как-то подсвечивает. Как это сделать, пока непонятно.
@!!ex (2012-01-25 16:15:00) [2]> если такой креативный,почему не сделать свой заголовок окна ?
Моя цель не в том, чтобы сделать "никак у всех".
А в том, чтобы реализовать нужные нам плюхи.
Винда вполне позволяет это сделать, достаточно ей сказать что хочешь рисовать на кэпшене. Я так понимаю сейчас приходится бодаться не с виндой, а с дельфи.
>да, скорее всего рисовать вручную придется, ну т.е. полу вручную.
То есть получать тему и вручную ее рисовать? :(
Eraser (2012-01-25 15:46:00) [3]> [0] @!!ex © (24.01.12 16:08)
да, скорее всего рисовать вручную придется, ну т.е. полу вручную.
Eraser (2012-01-25 15:45:00) [4]> [8] Anatoly Podgoretsky © (25.01.12 10:05)
Это понятия 2002 года. Вы давно в интерфейс современного MS Office заглядывали? с аеро всякие эти дополнительные кнопочки очень не плохо сочитаются.
QAZ (2012-01-25 14:17:00) [5]если такой креативный,почему не сделать свой заголовок окна ?
и пихай туда, хоть кнопки, хоть едиты, чем бодаца с виндой кто кого перерисует...
@!!ex (2012-01-25 12:51:00) [6]У меня есть фидбек от пользователей. :)
На кнопку Help в Caption у нас тыкают и активно.
Возможно это связанно с тем, что народ видит кнопку, которой нигде больше никогда не видел.
ToolTips мы и используешь.
Anatoly Podgoretsky (2012-01-25 10:11:00) [7]> @!!ex (24.01.2012 22:17:04) [4]
Открою тайну, внизу окна находится областьнотификаций, и она поддерживает
ToolTips, это такой желтый прямоугольник, всплывающий когда надо.
Открою еще один секрет, также как не нажимают F1, также и не нажимают на
дополнительную кнопку в окне, не нажимают даже на кронку [?] в диалогах, не
зря же Микрософт убрал ее в новых программах, а них есть лаборатория по
иследованию интерфейсов, в отличии от тебя.
Anatoly Podgoretsky (2012-01-25 10:05:00) [8]
> Еще ниразу не слышал чтобы пользователи жаловались на лишнюю
> кнопку в кэпшене, зато если кнопки вдруг нет - нас просят
> ее добавить.
Еще как жалуются, были некоторые программы с дополнительной кнопкой, народ сильно на них ругался.
И конечно справедливо, что просят сделать что то странное.
Dimka Maslov (2012-01-24 23:13:00) [9]В любом случае надо искать того, кто вклинивается в процесс прорисовки, а там уже искать, откуда дует ветер.
@!!ex (2012-01-24 22:33:00) [10]Ок. Попробую копать в эту сторону. Спасибо за наводку.
Dimka Maslov (2012-01-24 22:24:00) [11]
> Справка в стандартном виде отпугивает пользователей. Поскольку
> содержит плохо структурированный набор информации.
Это проблема разработчиков справки. Хорошо сделанную справку очень даже читают. Сам видел.
По существу вопроса: как мне удалось установить, в дельфи по приходу сообщения WM_SETTINGCHANGE происходит перерисовка, причём все стили и темы сбрасываются и устанавливаются по умолчанию. Борьба - через перехват и восстановление состояния после обработки этого сообщения.
@!!ex (2012-01-24 22:17:00) [12]Пользователи не используют F1. Пользователи не читают мануалов.
Если вы не знаете этого - значит вы никогда не делали сколь либо серьезного софта.
Пользователи все исследуют методом тыка, мы не боремся с этим, а используем. И это прекрасно работает.
Открою вам страшную тайна:
1) Пользователи не пользуются F1.
2) Справка в стандартном виде отпугивает пользователей. Поскольку содержит плохо структурированный набор информации.
3) Пользователь лучше всего воспринимает подсказки с минимум текста, небольшие наглядные картинки и простенькие анимации.
4) действуя стереотипами(типа того, что интерфейс должен быть только таким как задумали создатели ОС) вы никогда не сделаете ничего нового, а будете просто повторять ошибки предшественников.
QAZ (2012-01-24 21:48:00) [13]абалдеть нифстать,про F1 они никогда не слышали?
@!!ex (2012-01-24 19:56:00) [14]Как показала практика - очень правильный и нужный интерфейс делаем.
С нашим софтом, благодаря интерактивной системе помощи народ начинает эффективно работать в 4-5 раз быстрее чем в аналогичных инструментах у других разработчиков.
Доказано практикой.
Еще ниразу не слышал чтобы пользователи жаловались на лишнюю кнопку в кэпшене, зато если кнопки вдруг нет - нас просят ее добавить.
QAZ (2012-01-24 19:45:00) [15]> Рендерю дополнительную кнопку в заголовке окна.
> Что я делаю не так?
херней страдаеш,делаеш нестандартный,никому кроме тебя ненужный интерфейс