Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Проблема с перемещением слайдера (trackbar)

Ответить
Настройки темы
[решено] Проблема с перемещением слайдера (trackbar)

Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


проблема в следующем:

я двигаю слайдер с помощью функции _GUICtrlSlider_SetPos , слайдер перемещается но при этом не передает информацию о перемещении родительскому окну. нашел инфу, что надо послать родительскому окну нотификацию TRBN_THUMBPOSCHANGING. но как это сделать не понимаю.

Отправлено: 20:27, 11-05-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата alexey_a:
слайдер перемещается но при этом не передает информацию о перемещении родительскому окну »
Пример можно увидеть, где оно должно учитываться?

Цитата alexey_a:
нашел инфу, что надо послать родительскому окну нотификацию TRBN_THUMBPOSCHANGING. но как это сделать не понимаю. »
А откуда инфа? Возможно там и решение

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:07, 11-05-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Цитата alexey_a:нашел инфу, что надо послать родительскому окну нотификацию TRBN_THUMBPOSCHANGING. но как это сделать не понимаю. »
А откуда инфа? Возможно там и решение »
инфа из МСДН.

Цитата Creat0R:
Цитата alexey_a:слайдер перемещается но при этом не передает информацию о перемещении родительскому окну »
Пример можно увидеть, где оно должно учитываться? »
не понял, какой приме нужен. а слайдер двигаю элементарно:
$hwnd = ControlGetHandle($title, "", $ID)
_GUICtrlSlider_SetPos($hwnd, $pos)

Отправлено: 12:00, 12-05-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата alexey_a:
какой приме нужен »
Пример где требуется «передать информацию о перемещении родительскому окну».

Цитата alexey_a:
слайдер двигаю элементарно »
Немного подправленный пример из справки работает нормально:

Код: Выделить весь код
#include <GuiConstantsEx.au3>
#include <GuiSlider.au3>

; Create GUI
GUICreate("Slider Set Pos", 400, 296)
$hSlider = GUICtrlCreateSlider(2, 2, 396, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS, $TBS_ENABLESELRANGE))
GUISetState()

; Set Pos
$hwnd = ControlGetHandle("Slider Set Pos", "", $hSlider)
_GUICtrlSlider_SetPos($hwnd, 50)

; Get Pos
MsgBox(4160, "Information", "Pos: " & _GUICtrlSlider_GetPos($hSlider))

; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:59, 12-05-2009 | #4


Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Пример где требуется «передать информацию о перемещении родительскому окну». »
пример точный не могу указать. но суть в следующем: у меня есть готовое приложение, в нем есть слайдер, двигая который мы изменяем картинку. так вот когда слайдер передвигаю, то картинка не меняется. можешь попробовать с любым слайдером в готовом стороннем приложение.
Цитата Creat0R:
Немного подправленный пример из справки работает нормально: »
еще раз повторюсь: слайдер передвигается, а сообщение родительскому окну не отправляется. т.е. получается,что бегунок слайдера просто перерисовывается в новом месте, а родительское окно об этом ничег оне знает.

Отправлено: 15:08, 12-05-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата alexey_a:
пример точный не могу указать »
Цитата alexey_a:
можешь попробовать с любым слайдером в готовом стороннем приложение »
Я значит должен и пример сам делать, и ещё приложение искать?

Цитата alexey_a:
еще раз повторюсь: слайдер передвигается, а сообщение родительскому окну не отправляется »
Поэтому и пример нужен, чтобы понять проблему.

Ладно, у меня сегодня хорошее настроение, вот пример, и решение проблеме (ControlClick ):

Код: Выделить весь код
#include <GuiConstants.au3>
#include <GuiSlider.au3>

$GUI = GUICreate("Test Script", 300, 200)

$Icon = GUICtrlCreateIcon("Shell32.dll", Random(1, 10, 1), 20, 80, 16, 16)
$Slider = GUICtrlCreateSlider(20, 40, 260, 20)

$Button = GUICtrlCreateButton("Set Slider", 20, 10, 60, 20)

GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button
            $hSlider = ControlGetHandle($GUI, "", $Slider)
            _GUICtrlSlider_SetPos($hSlider, Random(1, 100, 1))
            ControlClick($GUI, "", $hSlider)
        Case $Slider
            ConsoleWrite("Slider changed" & @CRLF)
            GUICtrlSetImage($Icon, "Shell32.dll", Random(1, 10, 1))
    EndSwitch
WEnd

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:46, 12-05-2009 | #6


Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Ладно, у меня сегодня хорошее настроение, вот пример, и решение проблеме (ControlClick ): »
спасибо, великий и могучий! и что мне самому в голову не пришло попробовать controlClick?!

Отправлено: 18:50, 13-05-2009 | #7


Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Ладно, у меня сегодня хорошее настроение, вот пример, и решение проблеме (ControlClick ): »
проблема втом, что после ControlClick слайдер сдвигается на одну позицию. ControlClick делает клик по середине контрола. соответственно: если ты пытаешься установить на позицию 1, то слайдер устанавливается на позицию 2, т.е. все время ("необходимая позиция"+1), пока необходимая позиция находится до середины контрола, и все время ("необходимая позиция"-1), пока необходимая позиция находится после середины контрола. Т.е я никаким образом не могу установить позиции: начальная и конечная.

Отправлено: 19:12, 14-05-2009 | #8


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Немного поправил пример Creat0R`а. Просто мне не нравится ControlClick().



Код: Выделить весь код
#include <GuiConstants.au3>
#include <GuiSlider.au3>
#include <WindowsConstants.au3>

Global Const $SB_ENDSCROLL = 0x0008

$GUI = GUICreate("Test Script", 300, 200)

$Icon = GUICtrlCreateIcon("Shell32.dll", Random(1, 10, 1), 20, 80, 16, 16)
$Slider = GUICtrlCreateSlider(20, 40, 260, 20)

$Button = GUICtrlCreateButton("Set Slider", 20, 10, 60, 20)

GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button
;           $hSlider = ControlGetHandle($GUI, "", $Slider)
            _GUICtrlSlider_SetPos($Slider, Random(1, 100, 1))
            DllCall("user32.dll", "lparam", "SendMessage", "hwnd", $GUI, "int", $WM_HSCROLL, "wparam", $SB_ENDSCROLL, "lparam", GUICtrlGetHandle($Slider))
;           ControlClick($GUI, "", $hSlider)
        Case $Slider
            ConsoleWrite("Slider changed" & @CRLF)
            GUICtrlSetImage($Icon, "Shell32.dll", Random(1, 10, 1))
    EndSwitch
WEnd
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:24, 14-05-2009 | #9


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yashied:
DllCall("user32.dll", "lparam", "SendMessage", "hwnd", $GUI, "int", $WM_HSCROLL, "wparam", $SB_ENDSCROLL, "lparam", GUICtrlGetHandle($Slider)) »
Блин, пробовал же подобное, разочаровавшись остановился на банальном ControlClick

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 22:52, 14-05-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Проблема с перемещением слайдера (trackbar)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Проблема с OS XP MastAV Ноутбуки 10 10-11-2009 21:39
2008 - [решено] Проблема с ГП в AD., проблема при создании ГП к отдельным OU kozemit Windows Server 2008/2008 R2 2 15-07-2009 10:52
Ошибка - Проблема с перемещением Maggot_93 Microsoft Windows 2000/XP 1 09-04-2009 22:01
Разное - [решено] проблема с ие nmn Microsoft Windows 2000/XP 1 01-01-2009 18:47
Интернет - [решено] Проблема с IE AreKs Microsoft Windows 2000/XP 2 21-03-2008 18:02




 
Переход