Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не работают стрелки в ActiveX (C++Builder)
|
|||
|---|---|---|---|
|
#18+
На C++Builder написал ActiveX (разновидность TEdit, точнее TRxCalcEdit лежащий на TActiveForn). При его загрузке в IE не работают стрелки и Backspace. У Microsoft на этот счет есть Article 180402 и 168777: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Еще встречал такое предложение: Код: plaintext 1. 2. 3. 4. Простенькие эксперименты показали что сообщения о нажатии кнопок до TActiveForm не доходят. Посмотрел сделал свой класс TRxCalcEditX на основе TRxCalcEdit, где перехватил WndProc: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Оказывается сообщения WM_KEYDOWN о нажатии стрелок прекрасно доходят до TRxCalcEditX, но не обрабатываются, то есть курсор не перемещается!!! Вызов родного обработчика через Код: plaintext 1. не дает никаких результатов. Если уменьшить окно Internet Explorer'а чтобы появилась прокрутка, то при нажатии стрелок содержимое окна IE прокручивается еще до вызова моего WndProc в TRxCalcEditX. Пришлось применить хуки и поколдовать чтобы можно было загружать несколько одинаковых ActiveX объектов в одном окне: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. Ура! Стрелки в TRxCalcEditX начали работать! Но возник ряд проблем: - Перестали работать стрелки в главном меню Internet Explorer - Оказывается не вызывается ActiveFormDestroy, что потенциально опасно, так как хук не убирается должным образом - По прежнему не работает кнопка Backspace, а хотелось бы Итак неужели в C++Builder нельзя нормально реализовать аналог PreTranslateMessage() чтобы обойтись без всяких хуков? И как заставить в ActiveX работать кнопку Backspace? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2003, 10:25 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=475&tid=2036082]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 318ms |

| 0 / 0 |
