Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Есть текстовое поле, рядом VScroll Max=1 Min=100 LargeChange=SmallChange При нажатии стрелка вверх-вниз в текстовом поле Value в VScroll меняется на +1/-1 Рабочий код такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 1)Но он не обеспечивает визуальное нажатие кнопочки на VScrollFrom Пытался так: Код: plaintext 1. 2. 3. 4. 5. 6. -не работает. Т.е. как программно кликнуть по VScrollFrom (вверх или вниз) с визуальным эффектом нажатия? 2) В нажатом состоянии кнопочки VScroll выглядят "в плоскости формы", хотелось бы чтоб выглядели вдавленно. Как изменить его стиль? (через vb-параметры VScroll думаю нельзя) Примечание: через API VScroll я рисовать не хочу, т.к. все события должны вытаскиваться из vb-кода, а не из WM_COMMAND, "сложность конструкции" не позволяет отлавливать WM_COMMAND без глюков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 13:11 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. и тд и тп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 13:15 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Konst_One, то что SendMessage надо декларировать, я как бы в курсе. Причем тут Command я честно так и не понял. Создайте чистый проект, поместите на форму элемент VScroll1 (VScrollBar) Запустите.Нажмите верхнюю кнопочку.Она станет плоским прямоугольником, а хочется вдавленный. Вопросы: 1) Как сделать изображение нажатой кнопки вдавленной? 2) Как программно нажать верхнюю "кнопочку"? 3) Как программно нажать нижнюю "кнопочку"? >и тд и тп спасибо, тд и тп я уже неделю занимаюсь, больше успешно, чем неуспешно. Но нужен ответ на конкретный вопрос. Если вы намекаете что надо использовать две кнопочки вместо VScroll (в чем я сомневаюсь), тогда я забью пока. В нек. C++ проекте на эту тему (рыл ресурсы) используется некий SPIN со стилем Auto buddy=yes Set buddy integer=yes Arrow keys=yes ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 13:53 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
я просто как пример привёл. аналогично можно и с контролом скроллинга попробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 13:58 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Ну это понятно. Склоняюсь к мысли что проще забить. Потому что SPIN и Scroll, как я уже понял это разные элементы, в VB просто нету SPIN. Идея использовать VScroll вместо SPIN неплоха но видимо только "как есть", т.е. нет ответов на заданные вопросы. (Кликните верхушку vscroll на тек. странице форума, он плоский, однако) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 14:11 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
у меня выпуклый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 14:13 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
XP классич. интерфейс, IE8 Пока не нажали выпуклый, нажали и удерживаем-плоский. я думаю, эту тему проехали. ...М. б. с ходу знаете ответ. Как цвет textbox через sendmessage поменять на белый? он у меня и стоит Window BackGround=белый Но мне нужен locked=true Если назначить родителем текстбокса Common диалог то на диалоге текстбокс будет серый, а не белый предполагаю что белый цвет можно вернуть через API, но не могу найти нужную константу для SendMessage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 14:41 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
у меня vista для TextBox укажите явный цвет заливки не из системной палитры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 14:48 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
>для TextBox укажите При помещении на диалог виндам плевать что я там указывал, стиль элемента надо "переобъяснять" через API, если мнение виндов не совпало с моим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 14:56 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 14:57 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
тогда думаю, что будет достаточно трудно. придётся видимо работать с HDC текстбокса и через ф-ию SetBkColor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 15:04 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 15:21 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Konst_One, спасибо но так в моем случае не годится у меня итак перегружено этими WinProc. Я рассчитывал, что можно сделать через senmessage по типу Sendmessage(hwndTextBox, WM_что-либо_setbgcolor, vbWhite) С такими страстями проще позволить ввод в textbox (locked=false он будет белый) и написать тупо обработку этого ввода, как я и думал сначала. Просто сама обработка не очень легкая. Есть текстовое поле, рядом VScroll Max=1 Min=100 LargeChange=SmallChange=1 Сами min и max могут меняться т.е. когда Text_change надо проверять значение textbox.text на валидность (целые от max до min) и если значение корректно то записывать его в Vscroll.value ну допустим разрешаю вводить только "012...9" -разумно но если например Max=3 Min=20 и я ввожу 12 , то 1 -неправильно, а 12 -правильно, т.е. я не могу изменять текст в процессе ввода грубо говоря неправильное значение не будет присваиваться Vscroll.value но обязано отображаться, иначе 12 я не введу никогда. Т.е. обработка текста (если ее делать) здесь очень неблагодарная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 16:04 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
textbox залоченный не даёт смену цвета фона, у него по WM_PAINT перерисовка идёт постоянно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 16:07 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Ну тогда обрабатывать текст и не париться. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Единственное, IsNumeric(str) кажется не гарантирует что число целое. Есть что-то типа IsInteger или IsLong? Можно конечно еще вот это добавить, Код: plaintext 1. 2. 3. 4. И потом от лома нет приема: команда Вставить например.... А еще проще вот так, по варварски: все что неправильно присваиваться не будет, нефиг вводить чего не надо, присвоится только то что допустимо, т.е. целое от max<= value <=min (min у меня всегда больше max, нажатие верхней кнопки VScroll увеличивает Value) Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 16:48 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
в mscomctl2 есть специальный контрол для реализации ваешго желания. прикручивается сбоку от текстбокса и назначается мин и макс значение и приращение его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 16:52 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
называется он UpDown ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 16:55 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Konst_One, эге,...!!! похож, это он, прилично смотрящийся. mscomctl2.ocx за собой тащить? а SendMessage (нажмем кнопочку) для него есть?...пока не разбирался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 17:09 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
на счет сообщений для этого контрола не интересовался, но наверное должно быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 17:22 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Что-то не долгой была моя радость по поводу этого контрола. 1)mscomctl2.ocx за собой тащить? во-первых надо тащить 2) во вторых тащить мало, надо регистрировать, процедура его регистрации на какой-нибудь x64 виста отнюдь не тривиальна. http://social.msdn.microsoft.com/Forums/en-US/sbappdev/thread/91cf3127-70fe-4726-8a27-31b8964430c5 3) в третьих XP/Vista стили не применяются к этому контролу. http://vbaccelerator.com/home/VB/code/Libraries/XP_Visual_Styles/Using_XP_Visual_Styles_in_VB/article.asp Что получаем: при попытке добавить чуть-чуть сомнительной (в силу 3, а xp/vista стиль для VScroll выглядит красивше) красоты сильно рискуем запросто положить все приложение (в силу 2). Стоит ли оно того или есть комментарии хотя бы по пункту 3? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 19:56 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
не понимаю смысла, зачем красивости в ущерб функциональности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2010, 11:29 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Konst_One, так я вроде написал что я не принял (пока во всяком случае) этот контрол. С mscomctl.ocx я когда-то согласился, ее то достаточно просто мувнуть в папку программы даже без регистрации, а эту ради одного контрола...не стоит. Т.е. остановился на vscroll. Тем более все коды для vscroll я уже написал. Дело даже не в кодах-они не сложные. Если вы следили за моими топиками, то я добавляю vb элементы из vb-формы на диалог: http://sql.ru/forum/actualthread.aspx?tid=738442 Элементы ведут себя не всегда адекватно. Т.е. самое сложное добавить элемент и обеспечить ему адекватность(в плане сохранения функциональности и сохранения местоположения при OFN_ENABLESIZING ), тот же VScroll например пришлось запихивать во Frame, с Textbox я так делать не хочу, ибо хочу чтоб он получал фокус, радио-кнопки надо "лечить". Плюс всякие игры с pixel/twip буквально методом тыка. При этом я не могу перехватывать события через WinProc т.к. диалог видимо сам использует WinProc и события перехватываются. Добавленные элементы могут случайно наделится функционалом какого-нибудь Cancel или Открыть, надо проверять через вопросик (контекстную справку) на диалоге, и добавлять несколько пустых элементов на форму с кот. добавляю элементы. Т.е. переписывание кода с VScroll на UpDown задача на несколько дней вперед (с непонятным исходом + 3-мя вышеуказанными издержками). Решил не связываться. В перспективе конечно надо разобраться с UpDown он же SPIN, но думаю лучше через API, т.к. 2-й msccomct2.ocx меня абсолютно не вдохновил. Можете спросить зачем я в принципе делаю это навороченное окно сохранения. Просто добавляю отдельный функционал: сохранение многостраничных TIFF в разных форматах и ракурсах (отдельные страницы, компрессия, Quality и т.п.). Данный способ (настройки в диалоге) наиболее оптимальный и я решил это сделать "хорошо". И в общем то это таки кажется удается. По поводу Vista/XP стилей с UpDown, скорее всего что-то еще надо добавить в манифест, чего с ходу естественно не придумалось. А за манифесты вам отдельное спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2010, 13:25 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
задача ваша, конечно, не типовая. я бы на вашем месте диалог выбора/сохранения файла сделал бы собственный, а не использовал системный с хуками API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2010, 13:30 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2010, 13:53 |
|
||
|
Как программно кликнуть VScroll и как сделать кнопки вдавленные
|
|||
|---|---|---|---|
|
#18+
Konst_One, проверяли? Я пытался не только ваш вариант ICC_USEREX_CLASSES , но и вот эти все константы,через Or или по-отдельности. Private Const ICC_USEREX_CLASSES = &H200 Private Const ICC_BAR_CLASSES As Long = &H4 'toolbar, statusbar, trackbar, tooltips Private Const ICC_UPDOWN_CLASS = &H10 Все хорошо (c другими контролами), но не для UpDown. SPIN из приложения, на кот. смотрю нормально/стильно перерисовывается, а UpDown вечно-серенький. Если у вас работает, буду искать ошибку. >я бы на вашем месте диалог выбора/сохранения файла сделал бы собственный хочется придерживаться WIN стандартов, собственный контрол я не сумею нарисовать столь профессионально, а хукнутый выглядит "вполне". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2010, 16:12 |
|
||
|
|

start [/forum/topic.php?fid=60&startmsg=36502227&tid=2160067]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
21ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 120ms |

| 0 / 0 |
