<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: A_GuiControlEvent]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12982</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12982&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: A_GuiControlEvent».]]></description>
		<lastBuildDate>Fri, 08 Sep 2017 22:21:38 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: A_GuiControlEvent]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=119182#p119182</link>
			<description><![CDATA[<p>Вот простой пример отслеживания наведения, двойного клика и клика правой кнопкой:<br /></p><div class="codebox"><pre><code>global WM_MOUSEMOVE := 0x200
     , WM_LBUTTONDBLCLK := 0x203
     , WM_RBUTTONDOWN := 0x204

Gui, Add, Text, w100 h100 border hwndhControl1
Gui, Add, Text, yp x+5 w100 h100 border hwndhControl2
Gui, Show

controls := [ {hwnd: hControl1, func: Func(&quot;Control1&quot;)}, {hwnd: hControl2, func: Func(&quot;Control2&quot;)} ]

OnMessage( WM_MOUSEMOVE, Func(&quot;MsgHandling&quot;).Bind(controls) )
OnMessage( WM_LBUTTONDBLCLK, Func(&quot;MsgHandling&quot;).Bind(controls) )
OnMessage( WM_RBUTTONDOWN, Func(&quot;MsgHandling&quot;).Bind(controls) )

Control1(msg)  {
   if (msg = WM_MOUSEMOVE) {
      TrayTip,, Курсор над контролом 1
   }
   if (msg = WM_LBUTTONDBLCLK)  {
      TrayTip,, Двойной клик по контролу 1
   }
   if (msg = WM_RBUTTONDOWN)  {
      TrayTip,, Правая кнопка нажата над контролом 1
   }
}

Control2(msg)  {
   if (msg = WM_MOUSEMOVE) {
      TrayTip,, Курсор над контролом 2
   }
   if (msg = WM_LBUTTONDBLCLK)  {
      TrayTip,, Двойной клик по контролу 2
   }
   if (msg = WM_RBUTTONDOWN)  {
      TrayTip,, Правая кнопка нажата над контролом 2
   }
}

MsgHandling(controls, wp, lp, msg)  {
   MouseGetPos,,,, hControl, 2
   if (msg = WM_MOUSEMOVE)  {
      for k, v in controls  {
         if (hControl = v.hwnd &amp;&amp; !v.hover)  {
            v.hover := true
            v.func.Call(msg)
            timer := Func(&quot;CheckHover&quot;).Bind(v)
            SetTimer, % timer, 50
         }
      }
   }
   if (msg = WM_LBUTTONDBLCLK || msg = WM_RBUTTONDOWN)  {
      for k, v in controls  {
         if (hControl = v.hwnd)
            v.func.Call(msg)
      }
   }
}

CheckHover(obj)  {
   MouseGetPos,,,, hControl, 2
   if (hControl != obj.hwnd)  {
      SetTimer,, Delete
      obj.hover := false
   }
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 08 Sep 2017 22:21:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=119182#p119182</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: A_GuiControlEvent]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=119179#p119179</link>
			<description><![CDATA[<p><strong>shahlik002</strong>, расскажите подробнее, что Вы делаете, нужна конкретика.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Fri, 08 Sep 2017 18:39:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=119179#p119179</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: A_GuiControlEvent]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=119177#p119177</link>
			<description><![CDATA[<p>Есть такая особенность: если два раза левой кликнуть, то сработают 2 события &quot;одно_нажатие&quot; и 1 событие &quot;двойное_нажатие&quot;.<br />Так что тут сложно.</p><div class="quotebox"><blockquote><p>И какую-нибудь проверку организовать на пересечения контролов (у меня картинка за мышью двигается и неприятно затрагивает другие картинки) .</p></blockquote></div><p>Надо на передний план как-то вывести.</p>]]></description>
			<author><![CDATA[null@example.com (MandarinKa02)]]></author>
			<pubDate>Fri, 08 Sep 2017 18:22:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=119177#p119177</guid>
		</item>
		<item>
			<title><![CDATA[AHK: A_GuiControlEvent]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=119174#p119174</link>
			<description><![CDATA[<p>Есть аналоги A_GuiControlEvent?<br />Хочу для gui controla действия при наведении мыши , клике правой ,двойной левой и т.д.<br />А еще хорошо было бы узнать как картинки в gui передвигать на передний/задний план...<br />И какую-нибудь проверку организовать на пересечения контролов (у меня картинка за мышью двигается и неприятно затрагивает другие картинки) .</p>]]></description>
			<author><![CDATA[null@example.com (shahlik002)]]></author>
			<pubDate>Fri, 08 Sep 2017 17:11:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=119174#p119174</guid>
		</item>
	</channel>
</rss>
