<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5305&amp;type=atom" />
	<updated>2010-12-28T00:15:35Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5305</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43110#p43110" />
			<content type="html"><![CDATA[<p>Как же я не заметил этого! — очень виноват.<br />Всё в порядке, большое спасибо.</p><p>Скрипт работает правильно.<br />Точки (координаты которых выводятся) — вершины кнопок полос прокрутки<br />(квадратик в нижнем правом углу, если полос - две —&nbsp; <br />не принадлежит ни одной полосе).</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2010-12-28T00:15:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43110#p43110</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43109#p43109" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>mih пишет:</cite><blockquote><p>к сожалению, всегда выдаёт только Ошибку 1400 (в любом окне, даже в&nbsp; Блокноте).</p></blockquote></div><p>Ошибка 1400 — ERROR_INVALID_WINDOW_HANDLE — неверно указанный хэндл контрола.<br />Ты указал нужный хэндл во второй строке? Если хэндл указан верно, должно работать, проверено.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-12-28T00:06:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43109#p43109</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43106#p43106" />
			<content type="html"><![CDATA[<p>ложная тревога.</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2010-12-27T19:19:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43106#p43106</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43101#p43101" />
			<content type="html"><![CDATA[<p>Определение координат вертикальной и горизонтальной полос прокрутки, принадлежащей контролам (координаты относительно экрана):<br /></p><div class="codebox"><pre><code>F11:: 
   hControl =   ; указать hwnd контрола
   
   OBJID_VSCROLL = 0xFFFFFFFB
   OBJID_HSCROLL = 0xFFFFFFFA
   STATE_SYSTEM_INVISIBLE = 0x8000
   
   VarSetCapacity(SBI, 60)
   NumPut(60, SBI)

   Loop 2
   {
      if !DllCall(&quot;GetScrollBarInfo&quot;, UInt, hControl, UInt
         , A_Index = 1 ? OBJID_VSCROLL : OBJID_HSCROLL, UInt, &amp;SBI)
      {
         MsgBox, Невозможно получить данные!`nОшибка %A_LastError%
         Return
      }
      
      if (NumGet(SBI, 36) = STATE_SYSTEM_INVISIBLE)
         MsgBox, % (A_Index = 1 ? &quot;Вертик&quot; : &quot;Горизонт&quot;) 
            . &quot;альная полоса прокрутки невидима (не существует).&quot;
      Else
      {
         x1 := NumGet(SBI, 4), y1 := NumGet(SBI, 8)
         x2 := NumGet(SBI, 12), y2 := NumGet(SBI, 16)
         MsgBox, % &quot;Координаты верхней левой и нижней правой точки &quot;
            . (A_Index = 1 ? &quot;вертик&quot; : &quot;горизонт&quot;) 
            . &quot;альной полосы прокрутки:`n&quot;
            . &quot;x1 = &quot; x1 &quot;`n&quot;
            . &quot;y1 = &quot; y1 &quot;`n&quot;
            . &quot;x2 = &quot; x2 &quot;`n&quot;
            . &quot;y2 = &quot; y2
      }
   }
   Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-12-27T14:53:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43101#p43101</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43072#p43072" />
			<content type="html"><![CDATA[<p>Второй вариант не годится, т.к.<br />контрол у меня&nbsp; — типа &quot;список файлов&quot; (типа &quot;SysListView321&quot;),<br />и там&nbsp; курсор НЕ меняется (я привел выше неточный пример и исправил его).</p><p>А первый вариант — я надеялся его избежать, <br />т.к. он зависит от настроек системы (полосы могут быть разной ширины),<br />а также они могут быть, а могут и не быть — ситуация&nbsp; всё время меняется.</p><p>Если нет красивого способа, <br />то хоть бы найти способ определить их СУЩЕСТВОВАНИЕ,<br />хотя странно — мне кажется, должно что-то быть — сам контрол&nbsp; реагирует же<br />по-разному на клики в раб область, и на полосу — почему мы не можем различить их не косвенным образом, а прямо?</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2010-12-26T19:26:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43072#p43072</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43071#p43071" />
			<content type="html"><![CDATA[<p>Зная размеры и координаты контрола, а также размеры полос прокрутки (если они вообще есть), можно вычислить.<br />Другой вариант: при наведении курсора на полосу прокрутки он превращается из Arrow в IBeam.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2010-12-26T18:46:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43071#p43071</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Отличить "раб. область" контрола "ListView" от "полос прокрутки".]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43069#p43069" />
			<content type="html"><![CDATA[<p>Есть:<br />окно с контролом, содержащим <br />список файлов и полосы прокрутки (верт. и гор.) — <br />которые могут присутствовать, а могут и не существовать.</p><p>Пример такого контрола — в Проводнике — ClassNN &quot;SysListView321&quot;.</p><p>Моя проблема в том, что полосы прокрутки принадлежат контролу и <br />отличить их от собственно рабочей зоны <br />я не могу — а мне надо.</p><p>Есть ли простой способ понять, что мышь находится <br />именно в рабочей области, а не над полосой прокрутки ?</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2010-12-26T18:12:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43069#p43069</id>
		</entry>
</feed>
