Автор Тема: Двойной клик по Label  (Прочитано 208 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 231
  • Репутация: 20
    • Награды
  • Версия AutoIt: 3.3.12.0
Двойной клик по Label
« Создано: Декабрь 05, 2017, 08:34:49 »
Всем привет
Код (ниже) в принципе работает, но если сделать форму не активной, а потом произвести клик по Label срабатывает двойной клик, хотя не должен. Как это можно исправить?

(нажмите для показа/скрытия)
« Последнее редактирование: Декабрь 05, 2017, 12:48:08 от pvnn »

Русское сообщество AutoIt

Двойной клик по Label
« Отправлен: Декабрь 05, 2017, 08:34:49 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2575
  • Репутация: 441
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Двойной клик по Label
« Ответ #1, Отправлен: Декабрь 05, 2017, 09:41:27 »
видимо, при активации формы идет клик, во всяком случае, функция так регистрирует момент активации окна. и тут ты еще делаешь клик по элементу.
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 231

  • Автор темы
  • Репутация: 20
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Двойной клик по Label
« Ответ #2, Отправлен: Декабрь 05, 2017, 09:57:36 »
joiner это все я вижу, не могу догнать как это пофиксить? есть варианты?

Помечен как лучший ответ пользователем pvnn Отправлен Декабрь 05, 2017, 12:49:10

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2575
  • Репутация: 441
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Двойной клик по Label
« Ответ #3, Отправлен: Декабрь 05, 2017, 10:34:58 »
В твоем коде регистрируются все движения мыши над окном даже если оно не активно. Сделай активацию окна при наведении на него указателя мыши


Добавлено: Декабрь 05, 2017, 12:32:07
предлагаю так
декларируем глобальную переменную
Код: AutoIt [Выделить]
Global $gtws

число 7 - окно активно
8 - неактивно
Код: AutoIt [Выделить]
Func NewWndProc($hWndFrom, $iMsg, $wParam, $lParam)
    Switch $iMsg
        Case 7, 8
            $gtws = $iMsg
    EndSwitch
    Switch $hWndFrom
        Case GUICtrlGetHandle($lblLabel)
            Switch $iMsg
                Case $WM_LBUTTONDBLCLK
                    If $gtws = 7 Then MsgBox("", "Double Click!", "You double clicked my label!")
            EndSwitch
    EndSwitch
    Return _WinAPI_CallWindowProc($ptr_old_wndproc, $hWndFrom, $iMsg, $wParam, $lParam)
EndFunc   ;==>NewWndProc

« Последнее редактирование: Декабрь 05, 2017, 12:32:08 от joiner, Причина: Объединение сообщений »

Русское сообщество AutoIt

Re: Двойной клик по Label
« Ответ #3 Отправлен: Декабрь 05, 2017, 10:34:58 »

Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 231

  • Автор темы
  • Репутация: 20
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Двойной клик по Label
« Ответ #4, Отправлен: Декабрь 05, 2017, 12:49:01 »
 joiner спасибо, работает решение


Русское сообщество AutoIt

Re: Двойной клик по Label
« Ответ #4 Отправлен: Декабрь 05, 2017, 12:49:01 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
6046 Просмотров
Последний ответ Январь 01, 2012, 14:55:16
от F4nT0m
10 Ответов
5182 Просмотров
Последний ответ Январь 26, 2012, 19:15:04
от gregaz
6 Ответов
3238 Просмотров
Последний ответ Декабрь 10, 2012, 11:30:14
от Zergii
1 Ответов
2696 Просмотров
Последний ответ Март 16, 2013, 09:21:56
от madmasles
1 Ответов
2285 Просмотров
Последний ответ Август 12, 2013, 00:26:18
от WSWR
4 Ответов
1529 Просмотров
Последний ответ Январь 21, 2014, 17:07:18
от mef-t
0 Ответов
1190 Просмотров
Последний ответ Май 03, 2014, 11:57:49
от madmasles
8 Ответов
1920 Просмотров
Последний ответ Май 22, 2015, 12:36:52
от adkomissarov
2 Ответов
2040 Просмотров
Последний ответ Май 22, 2016, 12:34:32
от systel
4 Ответов
344 Просмотров
Последний ответ Сентябрь 15, 2017, 19:43:19
от shasoft