Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

> Рендерю дополнительную кнопку в заголовке окна.
> Что я делаю не так?
херней страдаеш,делаеш нестандартный,никому кроме тебя ненужный интерфейс


Наверх

Титульная страница Поиск, карта сайта Написать письмо