Непобедимый маус
От: Dim_NoReg  
Дата: 13.06.02 12:13
Оценка:
Почему Дельфийскими приложениями вообще и на базе KOL-а в частности игнорируется настройка windows "Snap mouse to the default button in dialogs"? Кто сталкивался? Может Win32-шной MessageBox каких-то флажков не хватает?
Re: Непобедимый маус
От: maxim_al Россия  
Дата: 13.06.02 15:14
Оценка:
Здравствуйте Dim_NoReg, Вы писали:

DN>Почему Дельфийскими приложениями вообще и на базе KOL-а в частности игнорируется настройка windows "Snap mouse to the default button in dialogs"? Кто сталкивался? Может Win32-шной MessageBox каких-то флажков не хватает?


А что это за настройки такие?
ICQ #311116826
Re[2]: Непобедимый маус
От: Dim_NoReg  
Дата: 14.06.02 05:40
Оценка:
Здравствуйте maxim_al, Вы писали:

MDN>>Почему Дельфийскими приложениями вообще и на базе KOL-а в частности игнорируется настройка windows "Snap mouse to the default button in dialogs"? Кто сталкивался? Может Win32-шной MessageBox каких-то флажков не хватает?


MA>А что это за настройки такие? :shuffle:


В системном аплете main.cpl (Mouse -> Motion) есть вышеуказанный флажок, который устанавливает ключик в реестре (см. Windows FAQ). Если он установлен, система при возникновении диалогового окна перемещает указатель мыши на кнопку по умолчанию в этом диалоге. Удобно и вырабатывает определенный стиль "общения" с мышой.
Re: Непобедимый маус
От: Владимир Гренадеров Россия  
Дата: 14.06.02 10:14
Оценка:
Здравствуйте Dim_NoReg, Вы писали:

DN>Почему Дельфийскими приложениями вообще и на базе KOL-а в частности игнорируется настройка windows "Snap mouse to the default button in dialogs"? Кто сталкивался? Может Win32-шной MessageBox каких-то флажков не хватает?


Поскольку Дельфийские окна(формы) — это НЕ виндузовые диалоги. А просто окна, на которые в рантайме Дельфи лепит другие окна — кнопки, панели и иже с ними.

А вот MessageBox должен работать, так как его делает не Дельфи, а user32.dll (не путать с ShowMessage!)
OK
Re[2]: Непобедимый маус
От: Dim_NoReg  
Дата: 16.06.02 11:27
Оценка:
Здравствуйте Владимир Гренадеров, Вы писали:

DN>>Почему Дельфийскими приложениями вообще и на базе KOL-а в частности игнорируется настройка windows "Snap mouse to the default button in dialogs"? Кто сталкивался? Может Win32-шной MessageBox каких-то флажков не хватает?


ВГ>Поскольку Дельфийские окна(формы) — это НЕ виндузовые диалоги. А просто окна, на которые в рантайме Дельфи лепит другие окна — кнопки, панели и иже с ними.


Это все ясно Извините, похоже я не так конкретно сформулировал вопрос. Я хотел спросить: "Какие флажки нужны MessageBox, чтобы она не игнорировала эту настройку?"

ВГ>А вот MessageBox должен работать, так как его делает не Дельфи, а user32.dll (не путать с ShowMessage!)


Да только не работает, по крайней мере в случае использования KOL. А из его сырцов ясно видно, что используется именно вышеуказанный MessageBox.
Re[3]: Непобедимый маус
От: Владимир Гренадеров Россия  
Дата: 16.06.02 12:28
Оценка:
Здравствуйте Dim_NoReg, Вы писали:

DN>Здравствуйте Владимир Гренадеров, Вы писали:


DN>>>Почему Дельфийскими приложениями вообще и на базе KOL-а в частности игнорируется настройка windows "Snap mouse to the default button in dialogs"? Кто сталкивался? Может Win32-шной MessageBox каких-то флажков не хватает?


ВГ>>Поскольку Дельфийские окна(формы) — это НЕ виндузовые диалоги. А просто окна, на которые в рантайме Дельфи лепит другие окна — кнопки, панели и иже с ними.


DN>Это все ясно Извините, похоже я не так конкретно сформулировал вопрос. Я хотел спросить: "Какие флажки нужны MessageBox, чтобы она не игнорировала эту настройку?"


ВГ>>А вот MessageBox должен работать, так как его делает не Дельфи, а user32.dll (не путать с ShowMessage!)


DN>Да только не работает, по крайней мере в случае использования KOL. А из его сырцов ясно видно, что используется именно вышеуказанный MessageBox.


Я провел эксперемент (Win XP + дрова от Logitech 9.60) — действительно, если использовать
MessageBox(handle, 'xxx', 'yyy', MB_OK);
то курсор не дергается. Непонятно, почему...

Зато вот так
MessageBox(handle, 'xxx', 'yyy', MB_YESNO);
все работает — курсор устнавливается на Yes.

Буду копать дальше.
OK
Re[4]: Непобедимый маус
От: Dim_NoReg  
Дата: 16.06.02 13:22
Оценка:
Здравствуйте Владимир Гренадеров, Вы писали:

ВГ>Я провел эксперемент (Win XP + дрова от Logitech 9.60) — действительно, если использовать

ВГ> MessageBox(handle, 'xxx', 'yyy', MB_OK);
ВГ>то курсор не дергается. Непонятно, почему...

ВГ>Зато вот так

ВГ> MessageBox(handle, 'xxx', 'yyy', MB_YESNO);
ВГ>все работает — курсор устнавливается на Yes.

ВГ>Буду копать дальше.


А если подсмотреть каким либо образом (каким???), с какими флажками вызывается MessageBox при сообщении, скажем, о ошибке при запуске службы. Там-то всего одна кнопка.
Re[5]: Непобедимый маус
От: Владимир Гренадеров Россия  
Дата: 16.06.02 14:07
Оценка:
Здравствуйте Dim_NoReg, Вы писали:

DN>А если подсмотреть каким либо образом (каким???), с какими флажками вызывается MessageBox при сообщении, скажем, о ошибке при запуске службы. Там-то всего одна кнопка.


Я специяально "подправил" один из своих сервисов так, что бы он генерил ошибку при запуске. И что же?
Курсор остался неподвижным. Может, проблема в реализации этой фичи (с установкой курсора), а не в MessageBox?
OK
Re[6]: Непобедимый маус
От: Dim_NoReg  
Дата: 16.06.02 14:57
Оценка:
ВГ>Я специяально "подправил" один из своих сервисов так, что бы он генерил ошибку при запуске. И что же?
ВГ>Курсор остался неподвижным. Может, проблема в реализации этой фичи (с установкой курсора), а не в MessageBox?

Может, может... Экспериментально установлено, что мыша позиционируется если нет флажка MB_OK, т.е. если кнопок в диалоге больше чем одна. Но встечаются же диалоговые окна с одной кнопкой у других приложений, которые функционирут правильно (даже вспомнить затрудняюсь каких, но есть такие!!!). В Win32 SDK описано довльно мало флагов MB_???, хотя бит там значительно больше отведено под это дело. Буду экспериментировать дальше
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.