Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2014.08.03;
Скачать: [xml.tar.bz2];

Вниз

DWM не всегда нормально отключается прозрачность у окна   Найти похожие ветки 

 
@!!ex ©   (2012-01-24 16:08) [0]

Рендерю дополнительную кнопку в заголовке окна.
Для того чтобы это работал корректно с включенным 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 и системных кнопок образуется просто белая полоса.
Что я делаю не так?


 
QAZ   (2012-01-24 19:45) [1]

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


 
@!!ex ©   (2012-01-24 19:56) [2]

Как показала практика - очень правильный и нужный интерфейс делаем.
С нашим софтом, благодаря интерактивной системе помощи народ начинает эффективно работать в 4-5 раз быстрее чем в аналогичных инструментах у других разработчиков.
Доказано практикой.
Еще ниразу не слышал чтобы пользователи жаловались на лишнюю кнопку в кэпшене, зато если кнопки вдруг нет - нас просят ее добавить.


 
QAZ   (2012-01-24 21:48) [3]

абалдеть нифстать,про F1 они никогда не слышали?


 
@!!ex ©   (2012-01-24 22:17) [4]

Пользователи не используют F1. Пользователи не читают мануалов.
Если вы не знаете этого - значит вы никогда не делали сколь либо серьезного софта.
Пользователи все исследуют методом тыка, мы не боремся с этим, а используем. И это прекрасно работает.

Открою вам страшную тайна:
1) Пользователи не пользуются F1.
2) Справка в стандартном виде отпугивает пользователей. Поскольку содержит плохо структурированный набор информации.
3) Пользователь лучше всего воспринимает подсказки с минимум текста, небольшие наглядные картинки и простенькие анимации.
4) действуя стереотипами(типа того, что интерфейс должен быть только таким как задумали создатели ОС) вы никогда не сделаете ничего нового, а будете просто повторять ошибки предшественников.


 
Dimka Maslov ©   (2012-01-24 22:24) [5]


> Справка в стандартном виде отпугивает пользователей. Поскольку
> содержит плохо структурированный набор информации.


Это проблема разработчиков справки. Хорошо сделанную справку очень даже читают. Сам видел.

По существу вопроса: как мне удалось установить, в дельфи по приходу сообщения WM_SETTINGCHANGE происходит перерисовка, причём все стили и темы сбрасываются и устанавливаются по умолчанию. Борьба - через перехват и восстановление состояния после обработки этого сообщения.


 
@!!ex ©   (2012-01-24 22:33) [6]

Ок. Попробую копать в эту сторону. Спасибо за наводку.


 
Dimka Maslov ©   (2012-01-24 23:13) [7]

В любом случае надо искать того, кто вклинивается в процесс прорисовки, а там уже искать, откуда дует ветер.


 
Anatoly Podgoretsky ©   (2012-01-25 10:05) [8]


> Еще ниразу не слышал чтобы пользователи жаловались на лишнюю
> кнопку в кэпшене, зато если кнопки вдруг нет - нас просят
> ее добавить.

Еще как жалуются, были некоторые программы с дополнительной кнопкой, народ сильно на них ругался.

И конечно справедливо, что просят сделать что то странное.


 
Anatoly Podgoretsky ©   (2012-01-25 10:11) [9]

> @!!ex  (24.01.2012 22:17:04)  [4]

Открою тайну, внизу окна находится областьнотификаций, и она поддерживает
ToolTips, это такой желтый прямоугольник, всплывающий когда надо.
Открою еще один секрет, также как не нажимают F1, также и не нажимают на
дополнительную кнопку в окне, не нажимают даже на кронку [?] в диалогах, не
зря же Микрософт убрал ее в новых программах, а них есть лаборатория по
иследованию интерфейсов, в отличии от тебя.


 
@!!ex ©   (2012-01-25 12:51) [10]

У меня есть фидбек от пользователей. :)
На кнопку Help в Caption у нас тыкают и активно.
Возможно это связанно с тем, что народ видит кнопку, которой нигде больше никогда не видел.
ToolTips мы и используешь.


 
QAZ   (2012-01-25 14:17) [11]

если такой креативный,почему не сделать свой заголовок окна ?
и пихай туда, хоть кнопки, хоть едиты, чем бодаца с виндой кто кого перерисует...


 
Eraser ©   (2012-01-25 15:45) [12]

> [8] Anatoly Podgoretsky ©   (25.01.12 10:05)

Это понятия 2002 года. Вы давно в интерфейс современного MS Office заглядывали? с аеро всякие эти дополнительные кнопочки очень не плохо сочитаются.


 
Eraser ©   (2012-01-25 15:46) [13]

> [0] @!!ex ©   (24.01.12 16:08)

да, скорее всего рисовать вручную придется, ну т.е. полу вручную.


 
@!!ex ©   (2012-01-25 16:15) [14]

> если такой креативный,почему не сделать свой заголовок окна ?
Моя цель не в том, чтобы сделать "никак у всех".
А в том, чтобы реализовать нужные нам плюхи.
Винда вполне позволяет это сделать, достаточно ей сказать что хочешь рисовать на кэпшене. Я так понимаю сейчас приходится бодаться не с виндой, а с дельфи.

>да, скорее всего рисовать вручную придется, ну т.е. полу вручную.
То есть получать тему и вручную ее рисовать? :(


 
CRLF   (2012-01-25 19:54) [15]


> То есть получать тему и вручную ее рисовать?
Это несложно, смотри модули Theme, uxTheme. Единственно меня смущает -- Aero при наведении курсора кнопку как-то подсвечивает. Как это сделать, пока непонятно.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2014.08.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.002 c
15-1389417411
Viktor Makarov
2014-01-11 09:16
2014.08.03
Помогите пожалуйста написать код для этой задачи)


15-1387350030
Пит
2013-12-18 11:00
2014.08.03
Ветка Розыча о задачке?


3-1300095610
Бинар
2011-03-14 12:40
2014.08.03
Прерывание запроса


3-1300090667
OW
2011-03-14 11:17
2014.08.03
Считаю, что странное нарушение целостности какое-то..


15-1389186800
Aleks2014
2014-01-08 17:13
2014.08.03
Как восстановить настройки Editor options-Color?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский