<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Получать сообщение о активации контрола GUI]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8100</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8100&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Получать сообщение о активации контрола GUI».]]></description>
		<lastBuildDate>Wed, 06 Mar 2013 23:54:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=70035#p70035</link>
			<description><![CDATA[<p>Значения хендлов тоже нужно сохранить.</p>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Wed, 06 Mar 2013 23:54:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=70035#p70035</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=70034#p70034</link>
			<description><![CDATA[<div class="quotebox"><cite>Александр_&nbsp; пишет:</cite><blockquote><p>Никак, придётся имена тоже передавать в библиотеку.</p></blockquote></div><p>Поэтому принципу думаю получится:<br /></p><div class="codebox"><pre><code>
Gui, Add, Edit, hwndПервый
Gui, Add, Edit, hwndВторой 
Gui, Add, Edit, hwndТретий
HF_GetControl( &quot;Первый|Второй|Третий&quot;)
return
HF_GetControl(Control)
{
    Loop, Parse, Control, | 
        HF_Control%A_Index% := %A_LoopField% , NHF_Control%A_Index% := A_LoopField , HF_MaxIndex := A_Index , MsgBox .= NHF_Control%A_Index% . &quot;  =  &quot; . HF_Control%A_Index% . &quot;`r&quot; 
    MsgBox % MsgBox . &quot;`rМассив создан из &quot; . HF_MaxIndex . &quot; контролов&quot;
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 06 Mar 2013 22:56:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=70034#p70034</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=70030#p70030</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Плохо сформулировал суть.<br />Если функция WM_COMMAND будет лежать например в библиотеке, а ей при старте скрипта будут &quot;скармливатся&quot; списком неизвестные нам ни по количеству, ни по названию переменные содержащие hwnd за которыми она будет следить. Сравнение идёт между числами, и когда будет совпадение с какой-то из переменных, как узнать именно её имя?</p></blockquote></div><p>Никак, придётся имена тоже передавать в библиотеку.</p>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Wed, 06 Mar 2013 22:00:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=70030#p70030</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=70028#p70028</link>
			<description><![CDATA[<p>Плохо сформулировал суть.<br />Если функция WM_COMMAND будет лежать например в библиотеке, а ей при старте скрипта будут &quot;скармливатся&quot; списком неизвестные нам ни по количеству, ни по названию переменные содержащие hwnd за которыми она будет следить. Сравнение идёт между числами, и когда будет совпадение с какой-то из переменных, как узнать именно её имя?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 06 Mar 2013 21:57:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=70028#p70028</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=70026#p70026</link>
			<description><![CDATA[<p>Странный вопрос. Эта строчка что делает <strong>if !(lp = hEdit1 || lp = hEdit2)</strong>?</p>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Wed, 06 Mar 2013 21:46:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=70026#p70026</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=70024#p70024</link>
			<description><![CDATA[<p>Скажите, а есть какой-то простой способ (без использования асс. массивов), определять именно имя переменной hwnd контрола:<br /></p><div class="codebox"><pre><code>Gui, Add, Edit, h23 w100 hwndhEdit1
Gui, Add, Edit, h23 w100 hwndhEdit2 
Gui, Show, w140
OnMessage(0x111, &quot;WM_COMMAND&quot;)
return

WM_COMMAND(wp, lp)
{
    Global hEdit1, hEdit2
    Static EN_SETFOCUS := 0x100, EN_KILLFOCUS := 0x200

    if !(lp = hEdit1 || lp = hEdit2)
        return
    
    if (wp &gt;&gt; 16 = EN_SETFOCUS)
        ToolTip % Имя переменной hwnd контрола
    .........

}

GuiClose:
    ExitApp
</code></pre></div><p>тут при каждой активации контролов хочется видеть в сообщении &quot;hEdit1&quot; или &quot;hEdit2&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 06 Mar 2013 21:35:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=70024#p70024</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69784#p69784</link>
			<description><![CDATA[<p>Спасибо. Буду &quot;курить&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Tue, 26 Feb 2013 20:15:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69784#p69784</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69783#p69783</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Вторым параметром она возвращает hwnd контрола, а первым непонятно.</p></blockquote></div><p>В первом параметре возвращаются два значения. В старшем слове (вторые от начала 2 байта) — код оповещения (их может быть много, но мы отслеживаем только EN_SETFOCUS и EN_KILLFOCUS), в младшем слове (первые от начала 2 байта) — идентификатор контрола (не путать с hwnd). Нас интересует старшее слово. Чтобы получить эту часть параметра, осуществляем <a href="http://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8#.D0.9B.D0.BE.D0.B3.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D0.B9_.D1.81.D0.B4.D0.B2.D0.B8.D0.B3">поразрядный сдвиг</a> вправо, затем сравниваем полученный результат со значениями EN_SETFOCUS и EN_KILLFOCUS (чему они равны, можно узнать из Гугла, если найти таблицы констант Windows или какой-нибудь код, где их значения указаны).<br /></p><div class="quotebox"><blockquote><p>И как это всё искать <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms647591(v=vs.85).aspx">на msdn</a> я так и непонял, где указано что должна возвращать WM_COMMAND в параметрах wp и lp.</p></blockquote></div><p>В разделе Remarks.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 26 Feb 2013 20:07:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69783#p69783</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69763#p69763</link>
			<description><![CDATA[<p><strong>teadrinker</strong> спасибо вам большое в который раз!</p><p>Если вам не сложно, просвятите меня по счёт OnMessage. 0x111 в строке с OnMessage<br />это WM_COMMAND <a href="http://l.autohotkey.net/docs/misc/SendMessageList.htm">из этого списка</a> тут же в строке WM_COMMAND - имя функции (может быть любое) которая будет получать сообщения от WM_COMMAND. Вторым параметром она возвращает hwnd контрола, а первым непонятно. EN_SETFOCUS := 0x100, EN_KILLFOCUS := 0x200 заданы как псевдонимы, то есть их значения можно использовать напрямую в выражениях функции. Непонятно, откуда взялись 0x100 и 0x200. (wp &gt;&gt; 16 = EN_SETFOCUS) что значит это выражение.&nbsp; И как это всё искать <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms647591(v=vs.85).aspx">на msdn</a> я так и непонял, где указано что должна возвращать WM_COMMAND в параметрах wp и lp.</p><p>И зачем тогда <a href="http://l.autohotkey.net/docs/misc/SendMessageList.htm">в этом списке</a><br />WM_SETFOCUS = 0x07<br />WM_KILLFOCUS = 0x08</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Mon, 25 Feb 2013 17:05:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69763#p69763</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69752#p69752</link>
			<description><![CDATA[<div class="codebox"><pre><code>global EN_SETFOCUS := 0x100, EN_KILLFOCUS := 0x200, hEdit1

Gui, Add, Edit, x10 w100 h23 hwndhEdit1
Gui, Add, Button, x50 w60, OK
Gui, Show, w120

OnMessage(0x111, &quot;WM_COMMAND&quot;)
return

GuiClose:
    ExitApp

WM_COMMAND(wp, lp)
{
    if !(lp = hEdit1)
        return
    
    if (wp &gt;&gt; 16 = EN_SETFOCUS)
        ToolTip Контрол Edit1 получил фокус   ; здесь вместо ToolTip необходимые действия
                                              ; если действия занимают много времени, то лучше по таймеру
    if (wp &gt;&gt; 16 = EN_KILLFOCUS)
        ToolTip Контрол Edit1 потерял фокус   ; здесь вместо ToolTip необходимые действия
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 24 Feb 2013 16:56:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69752#p69752</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69739#p69739</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Я только попозже смогу написать</p></blockquote></div><p>Спасибо. Жду с нетерпением.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sun, 24 Feb 2013 10:46:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69739#p69739</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69738#p69738</link>
			<description><![CDATA[<p>Там winaрi не нужно. Используется родная <a href="http://l.autohotkey.net/docs/commands/OnMessage.htm"><em>OnMessage</em></a>. Я только попозже смогу написать.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 24 Feb 2013 10:45:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69738#p69738</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69735#p69735</link>
			<description><![CDATA[<p>Спасибо&nbsp; за ответ. Но ничего как всегда мне с winaрi&nbsp; не понятно.<br />Можно на примере, пожалуйста .</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sun, 24 Feb 2013 10:22:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69735#p69735</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69734#p69734</link>
			<description><![CDATA[<p>Отслеживать с помощью <em>OnMessage</em> уведомление <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb761685%28v=vs.85%29.aspx"><strong>EN_SETFOCUS</strong></a>.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 24 Feb 2013 09:59:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69734#p69734</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Получать сообщение о активации контрола GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69731#p69731</link>
			<description><![CDATA[<p>Господа, каким образом можно поставить хук на событие активации \ деактивации элемента управления (например Edit) своего GUI? </p><div class="codebox"><pre><code>Gui, Add, Edit, vEdit1 x10 w300 Center ReadOnly
Gui, Add, Edit, vEdit2 x10 w300 Center ReadOnly
Gui, Show
Return
            *******
MsgBox Контрол Edit1 деактивирован
            *******
MsgBox Активирован контрол Edit1
            *******</code></pre></div><p>В данном случае поставил курсор ввода в Edit1, получил одно сообщение. <br />Убрал курсор ввода, ещё одно сообщение.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sun, 24 Feb 2013 09:04:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69731#p69731</guid>
		</item>
	</channel>
</rss>
