Конференция "Основная" » DWM не всегда нормально отключается прозрачность у окна
 
  • @!!ex © (24.01.12 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 (24.01.12 19:45) [1]
    > Рендерю дополнительную кнопку в заголовке окна.
    > Что я делаю не так?
    херней страдаеш,делаеш нестандартный,никому кроме тебя ненужный интерфейс
  • @!!ex © (24.01.12 19:56) [2]
    Как показала практика - очень правильный и нужный интерфейс делаем.
    С нашим софтом, благодаря интерактивной системе помощи народ начинает эффективно работать в 4-5 раз быстрее чем в аналогичных инструментах у других разработчиков.
    Доказано практикой.
    Еще ниразу не слышал чтобы пользователи жаловались на лишнюю кнопку в кэпшене, зато если кнопки вдруг нет - нас просят ее добавить.
  • QAZ (24.01.12 21:48) [3]
    абалдеть нифстать,про F1 они никогда не слышали?
  • @!!ex © (24.01.12 22:17) [4]
    Пользователи не используют F1. Пользователи не читают мануалов.
    Если вы не знаете этого - значит вы никогда не делали сколь либо серьезного софта.
    Пользователи все исследуют методом тыка, мы не боремся с этим, а используем. И это прекрасно работает.

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

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


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

    По существу вопроса: как мне удалось установить, в дельфи по приходу сообщения WM_SETTINGCHANGE происходит перерисовка, причём все стили и темы сбрасываются и устанавливаются по умолчанию. Борьба - через перехват и восстановление состояния после обработки этого сообщения.
  • @!!ex © (24.01.12 22:33) [6]
    Ок. Попробую копать в эту сторону. Спасибо за наводку.
  • Dimka Maslov © (24.01.12 23:13) [7]
    В любом случае надо искать того, кто вклинивается в процесс прорисовки, а там уже искать, откуда дует ветер.
  • Anatoly Podgoretsky © (25.01.12 10:05) [8]

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

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

    И конечно справедливо, что просят сделать что то странное.
  • Anatoly Podgoretsky © (25.01.12 10:11) [9]
    > @!!ex  (24.01.2012 22:17:04)  [4]

    Открою тайну, внизу окна находится областьнотификаций, и она поддерживает
    ToolTips, это такой желтый прямоугольник, всплывающий когда надо.
    Открою еще один секрет, также как не нажимают F1, также и не нажимают на
    дополнительную кнопку в окне, не нажимают даже на кронку [?] в диалогах, не
    зря же Микрософт убрал ее в новых программах, а них есть лаборатория по
    иследованию интерфейсов, в отличии от тебя.
  • @!!ex © (25.01.12 12:51) [10]
    У меня есть фидбек от пользователей. :)
    На кнопку Help в Caption у нас тыкают и активно.
    Возможно это связанно с тем, что народ видит кнопку, которой нигде больше никогда не видел.
    ToolTips мы и используешь.
  • QAZ (25.01.12 14:17) [11]
    если такой креативный,почему не сделать свой заголовок окна ?
    и пихай туда, хоть кнопки, хоть едиты, чем бодаца с виндой кто кого перерисует...
  • Eraser © (25.01.12 15:45) [12]
    > [8] Anatoly Podgoretsky ©   (25.01.12 10:05)

    Это понятия 2002 года. Вы давно в интерфейс современного MS Office заглядывали? с аеро всякие эти дополнительные кнопочки очень не плохо сочитаются.
  • Eraser © (25.01.12 15:46) [13]
    > [0] @!!ex ©   (24.01.12 16:08)

    да, скорее всего рисовать вручную придется, ну т.е. полу вручную.
  • @!!ex © (25.01.12 16:15) [14]
    > если такой креативный,почему не сделать свой заголовок окна ?
    Моя цель не в том, чтобы сделать "никак у всех".
    А в том, чтобы реализовать нужные нам плюхи.
    Винда вполне позволяет это сделать, достаточно ей сказать что хочешь рисовать на кэпшене. Я так понимаю сейчас приходится бодаться не с виндой, а с дельфи.

    >да, скорее всего рисовать вручную придется, ну т.е. полу вручную.
    То есть получать тему и вручную ее рисовать? :(
  • CRLF (25.01.12 19:54) [15]

    > То есть получать тему и вручную ее рисовать?
    Это несложно, смотри модули Theme, uxTheme. Единственно меня смущает -- Aero при наведении курсора кнопку как-то подсвечивает. Как это сделать, пока непонятно.
 
Конференция "Основная" » DWM не всегда нормально отключается прозрачность у окна
Есть новые Нет новых   [120378   +15][b:0][p:0.001]