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

Вниз

Насколько это корректно?   Найти похожие ветки 

 
Kerk ©   (2005-02-07 08:24) [0]

Ковыряю исходники. Наткнулся на такое:
   MessageBox(GetForegroundWindow(), "Plugin loading is failed", nil, MB_OK);

сабж?


 
GuAV ©   (2005-02-07 08:26) [1]

IHMHO не корректно. Главное прилжение должно передать плагину хеднл.


 
КаПиБаРа ©   (2005-02-07 08:36) [2]

Суть даной конструкции заключается в том, что owner"ом сообщению назначется верхнее окно. А т.к. сообщение отрисовывается поверх owner"а, то какое бы нибыло окно в текущей момент активно пользователь увидит сообщение.
Если передать handle конкретного окна, то оно может оказаться закрыто другим окном во время вывода данного сообщения и пользователь его не увидит сразу.
Так что если автор хотел что бы пользователь сразу увидел сообщение, то сделано вполне корректно.


 
Kerk ©   (2005-02-07 08:40) [3]

КаПиБаРа ©   (07.02.05 8:36) [2]
Так что если автор хотел что бы пользователь сразу увидел сообщение, то сделано вполне корректно.


имхо нифига!! ибо MessageBox модальный!!! нефиг его поверх текущего активного окна показывать!!


 
КаПиБаРа ©   (2005-02-07 08:50) [4]

Kerk ©   (07.02.05 8:40) [3]
Знаете программу Nero? Я между делом записываю диск. Нажимаю кнопку записи и продолжаю дальше работать. Минут через 10-20 смотрю как там диск пишется. А Nero решил у меня узать нужно ли финализировать диск. И вывел это окно поверх своего, а не того в котором я работал. Получается - 20 минут Nero балду гонял, а диск не записан. У меня в такой момент вырывается слово из 5 букв с мягким знаком на конце.
Так нужно или нет MessageBox поверх текущего активного окна показывать?


 
Kerk ©   (2005-02-07 08:54) [5]

КаПиБаРа ©   (07.02.05 8:50) [4]
Так нужно или нет MessageBox поверх текущего активного окна показывать?


все же думаю, что нет. ты же не знаешь, что там в активном окне происходит?


 
Думкин ©   (2005-02-07 08:57) [6]

> [4] КаПиБаРа ©   (07.02.05 08:50)

А если поморгать в панели задач?


 
КаПиБаРа ©   (2005-02-07 09:02) [7]

Kerk ©   (07.02.05 8:54) [5]
Одно дело если твоя программа занимается подсчетом мух в комнате или ворон за окном и каждую минуту радосно сообщает об этом пользователю выволя окно поверх всех.
Другое дело когда пользователь запускает длительный процесс, но у программы возникли сложности требующие немедленного решения пользователя для продолжения процесса. Например окно о том что диск требуется очистить или финализировать нужно вывести поверх всех окон, а окно с сообщением "Диск записан" не нужно выводить поверх всех окон.


 
КаПиБаРа ©   (2005-02-07 09:12) [8]

Думкин ©   (07.02.05 8:57) [6]
Если рассматривать мой пример, то моргать конечно можно, но оптимальней сразу показать вопрос поверх окон и жедательно рядом с курсором мышки.
Если просто поморгать, то у пользователя будет украдена больше времени, ему нужно будет делать больше операций, больше думать. Например:
- Ой, а чей то моргает.
- Надо нажать, посмотреть.
- Ой, она че-то хочет.
- Над нажать "Да".

Если выводить окно воверх, то остается последние 2 пункта.


 
Kerk ©   (2005-02-07 09:16) [9]

А может автоматически нажмем "Да"? Тогда пользователю еще меньше думать придется....


 
КаПиБаРа ©   (2005-02-07 09:18) [10]

Kerk ©   (07.02.05 9:16) [9]
Автоматически нажимать "Да" в таком случае можно через 5 минут.


 
Kerk ©   (2005-02-07 09:21) [11]

КаПиБаРа ©   (07.02.05 9:18) [10]
Автоматически нажимать "Да" в таком случае можно через 5 минут.


мда.. LOL три раза..

Are you really want to format C: ? (Y/N)
5:00
4:59
4:58
...


 
Kerk ©   (2005-02-07 09:23) [12]


> Are you

Конечно Do you... :)


 
КаПиБаРа ©   (2005-02-07 09:26) [13]

Kerk ©   (07.02.05 9:21) [11]
Идиоты всегда хорошую мысль до абсурда доводят :)


 
Kerk ©   (2005-02-07 09:26) [14]

КаПиБаРа ©   (07.02.05 9:26) [13]

спасибо за комплимент :)


 
КаПиБаРа ©   (2005-02-07 09:27) [15]

Kerk ©   (07.02.05 9:26) [14]
Ну ты сам туда записался. Пожалуйста :)


 
Kerk ©   (2005-02-07 09:35) [16]

А если серьезно, то чем в принципе отличается запрос на форматирование болванки от [11] ?


 
КаПиБаРа ©   (2005-02-07 09:46) [17]

Последствиями и самим процессом. Ко всему нужно подходить с головой.
Как пишутся болванки. В основном на "автомате", т.е. запустил программу быстро нажал 5-10 кнопок и запись началась. Пользователь переключается на свои задачи.

Форматирование же диска требует особого внимания. И как часто вы форматируете диски так сказать мимоходом?


 
Erik1 ©   (2005-02-07 10:25) [18]

Да ладно чего вы спорите КаПиБаРа прав, у нас были похожие проблемы. Только использовался Midi интерфейс и иногда получалось так, что вылезала ошибка, а пользователь уже переключил окно, а диалог то модальный. Вобщем ничего нажать нельзя и диалога невидно! Избавится от этого можно было только нажать несколько раз ATL+TAB, но редко кто из пользователей был такм продвинутым.


 
Kerk ©   (2005-02-07 10:32) [19]

Erik1 ©   (07.02.05 10:25) [18]

вот я как представлю ситуацию, как кто-то мне модальное окно поверх активного показал.. так и охота по шапке надавать :)


 
Игорь Шевченко ©   (2005-02-07 11:19) [20]


> Насколько это корректно?


Согласно описанию - некорректно.

"The user must respond to the message box before continuing work in the window identified by the hWnd parameter. However, the user can move to the windows of other threads and work in those windows.
Depending on the hierarchy of windows in the application, the user may be able to move to other windows within the thread. All child windows of the parent of the message box are automatically disabled, but popup windows are not.

MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor MB_TASKMODAL is specified."

TFM надо чаще читать


 
КаПиБаРа ©   (2005-02-07 11:23) [21]

Согласен не корректно :)


 
Cosinus ©   (2005-02-07 11:28) [22]


> Игорь Шевченко ©   (07.02.05 11:19) [20]

А какое тогда есть альтернативное решение? В некоторых случаях же, действительно чем раньше пользователь увидел сообщение, тем лучше. Единственное, что мне приходит в голову помимо мигания, это всплывающий хинт в трее. Но ведь далеко не каждая программа, "запузыривает свой значек, туда, где часики" (с).


 
Игорь Шевченко ©   (2005-02-07 11:43) [23]


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


Поставить флажок MB_TOPMOST или MB_SETFOREGROUND ?


 
Cosinus ©   (2005-02-07 11:49) [24]

Логично ;)


 
VMcL ©   (2005-02-07 12:05) [25]

>>Kerk ©   (07.02.05 08:24)

GetForegroundWindow() обсудили, а фразу на англицком - нет.

Так вот, слово "is" лишнее. Вдобавок, я бы ещё и определённый артикль поставил перед "Plugin".

=)


 
Kerk ©   (2005-02-07 12:07) [26]

VMcL ©   (07.02.05 12:05) [25]

:))) да я не обратил внимания..:) просто автор сообщения немецкий учил :)


 
Игорь Шевченко ©   (2005-02-07 12:18) [27]


> Так вот, слово "is" лишнее. Вдобавок, я бы ещё и определённый
> артикль поставил перед "Plugin"


или должно быть заменено на has.
А артикль необязателен, IMHO



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

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

Наверх





Память: 0.51 MB
Время: 0.047 c
1-1107715186
MMMx
2005-02-06 21:39
2005.02.20
Шифрование


14-1106211382
DelphiNew
2005-01-20 11:56
2005.02.20
Изгиб гитары жёлтой


3-1106037802
}|{yk
2005-01-18 11:43
2005.02.20
Что бы это значило?


8-1099685679
ser_ega
2004-11-05 23:14
2005.02.20
Bmp -->JPG


10-1084259585
13-Drakosha
2004-05-11 11:13
2005.02.20
Настройка DCOM...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский