Здравствуйте.
Существует окно без наличия на нем каких либо контролов.
Необходимо отловить двойное нажатие на нем (если точнее то в клиентской области окна) левой кнопки мыши.
Пробовал через ALERT MouseLeft2 - не работает.
Пробовал сабклассить и отлавливать WM_LBUTTONDBLCLK с установкой доп стиля окну (Prop:ClientHandle) CS_DBLCLKS - не работает.
Вопрос: как отловить двойное нажатие мыши ?
Случай использования очереди WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDOWN, WM_LBUTTONUP + таймер просьба не рассматривать.
Спасибо.
PS
еб...кларион (просьба не флэймить)
Написал: PAA(27)
Отловить MouseLeftDoubleClick на окне
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Привет, Всем!
Хм, по идее WM_LBUTTONDBLCLK должно работать. Возможно не то окошко сабклассите. Вообще, в событиях Windows очень помогает ориентироваться утилита MS Spy++ из состава MS Visual Studio. Она имеется на http://www.clarionlife.net Очень рекомендую, многое из событийного управления окон становится понятным.
Удачи!
__________________________________
Владимир Якимченко (IСQ 16 993 194)
Написал: ClaList(2)
Хм, по идее WM_LBUTTONDBLCLK должно работать. Возможно не то окошко сабклассите. Вообще, в событиях Windows очень помогает ориентироваться утилита MS Spy++ из состава MS Visual Studio. Она имеется на http://www.clarionlife.net Очень рекомендую, многое из событийного управления окон становится понятным.
Удачи!
__________________________________
Владимир Якимченко (IСQ 16 993 194)
Написал: ClaList(2)
А не получится положить на окошко регион, а уже с него ловить?
Region# = Create(0,Create:Region)
SetPosition(Region#,0,0,0{Prop:Width},0{Prop:Height})
Region#{Prop:Alrt,255}=MouseLeft2
Unhide(Region#)
Ну и дальше отловить Alert с региона
--
C уважением
Yuri
Адрес:yufil@mail.ru
Написал: ClaList(2)
Region# = Create(0,Create:Region)
SetPosition(Region#,0,0,0{Prop:Width},0{Prop:Height})
Region#{Prop:Alrt,255}=MouseLeft2
Unhide(Region#)
Ну и дальше отловить Alert с региона
--
C уважением
Yuri
Адрес:yufil@mail.ru
Написал: ClaList(2)
Так устроит?
--
Best regards,
Владимир mailto:ut5jbh@ua.fm
Написал: ClaList(2)
Код: Выделить всё
clickmouse PROCEDURE ! Declare Procedure
! Start of "Data Section"
! [Priority 4000]
Window WINDOW('Caption'),AT(,,185,92),MDI,SYSTEM,RESIZE,GRAY,FONT('MS Sans Serif',8,,FONT:regular)
END
! End of "Data Section"
CODE ! Begin processed code
! Start of "Processed Code"
! [Priority 4000]
open(window)
TARGET{Prop:Alrt,255} = MouseLeft
TARGET{Prop:Alrt,254} = MouseLeft2
TARGET{Prop:Alrt,253} = MouseRight
accept
case event()
OF EVENT:AlertKey
CASE KEYCODE()
OF MouseLeft
OROF MouseLeft2
OROF MouseRight
POST(Event:CloseWindow)
END
end
end
! End of "Processed Code"
Best regards,
Владимир mailto:ut5jbh@ua.fm
Написал: ClaList(2)