<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828385</guid>
        <pubDate>Tue, 08 Jan 2008 13:51:28 +0000</pubDate>
        <title>В чём отличия GetWindowDC от GetDC?</title>
        <link>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828385</link>
        <description><![CDATA[Rose: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Ну тогда получается что сама область должна иметь разные разммеры?</div></div><br>
Смотря у какого окна. В общем случае - разные, в частном - могут и совпадать.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>А при выводе что 1-й что 2-й функцией текст выводится в 1 месте.</div></div><br>
Для Desktop-а - скорее всего, так как верхний левый угол клиентской и полной области окна совпадают. А для формы, например, уже нет:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.FormPaint(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;DC: HDC;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;DC:=GetDC(Handle);</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;TextOut(DC,100,100,&#39;aaa&#39;,3);</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;ReleaseDC(Handle,DC);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;DC:=GetWindowDC(Handle);</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;TextOut(DC,100,100,&#39;aaa&#39;,3);</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;ReleaseDC(Handle,DC);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Текст, выведенный во втором случае, будет смещен вниз на высоту заголовка окна, и вправо - на ширину бокового бордюра.]]></description>
        <author>Rose</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828370</guid>
        <pubDate>Tue, 08 Jan 2008 13:39:15 +0000</pubDate>
        <title>В чём отличия GetWindowDC от GetDC?</title>
        <link>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828370</link>
        <description><![CDATA[^D^ima: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=218022&view=findpost&p=1828323'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Rose &#064; <time class="tag-quote__quoted-time" datetime="2008-01-08T13:07:07+00:00">08.01.08, 13:07</time></span><div class='quote '> Все что осталось </div></div><br>
Ну тогда получается что сама область должна иметь разные разммеры? А при выводе что 1-й что 2-й функцией текст выводится в 1 месте.]]></description>
        <author>^D^ima</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828323</guid>
        <pubDate>Tue, 08 Jan 2008 13:07:07 +0000</pubDate>
        <title>В чём отличия GetWindowDC от GetDC?</title>
        <link>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828323</link>
        <description><![CDATA[Rose: <strong class='tag-b'>^D^ima</strong>, это все, что не входит в служебную (неклиентскую область). Служебная - это заголовок, бордюры, меню, скроллбары и т.д. Все что осталось предназначено для пользовательских целей и называется клиентская область.]]></description>
        <author>Rose</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828316</guid>
        <pubDate>Tue, 08 Jan 2008 12:57:46 +0000</pubDate>
        <title>В чём отличия GetWindowDC от GetDC?</title>
        <link>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1828316</link>
        <description><![CDATA[^D^ima: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=218022&view=findpost&p=1827906'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>NikNet_ &#064; <time class="tag-quote__quoted-time" datetime="2008-01-08T03:00:50+00:00">08.01.08, 03:00</time></span><div class='quote '>Получить DC всего окна </div></div><br>
Понятно. А что тогда понимается под &quot;клиентская область окна&quot;?]]></description>
        <author>^D^ima</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1827906</guid>
        <pubDate>Tue, 08 Jan 2008 03:00:50 +0000</pubDate>
        <title>В чём отличия GetWindowDC от GetDC?</title>
        <link>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1827906</link>
        <description><![CDATA[NikNet_: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// Получить DC клиентской области окна по его хэндлу</div><div class="code_line">function GetDC;</div><div class="code_line">{</div><div class="code_line">Функция GetDC извлекает дескриптор контекста дисплея для клиентской области указанного окна. Контекст дисплея может быть использован в последующих функциях GDI для рисования в клиентской области окна. </div><div class="code_line">&nbsp;</div><div class="code_line">Эта функция извлекает общий, классовый или частный контекст устройства в зависимости от стиля класса, указанного для заданного окна. Для общих контекстов устройства GetDC присваивает контексту атрибуты по умолчанию каждый раз при извлечении контекста &nbsp; устройства. Для классовых и частных контекстов устройства GetDC оставляет ранее присвоенные атрибуты без изменений. </div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// Получить DC всего окна (включая его заголовок, меню, скроллбары и т.д.) по его хэндлу</div><div class="code_line">function GetWindowDC;</div><div class="code_line">{</div><div class="code_line">предназначена для получения контекста окна, включая заголовок, меню, скроллбары, т.е. получив контекст с помощью этой функции можно рисовать в НЕклиентской области окна. Функция </div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">// Освободить DC, ранее полученный по GetDC или GetWindowDC</div><div class="code_line">function ReleaseDC;</div></ol></div></div></div></div><br>
<strong class='tag-b'>-------------------------------&#62; GetDC(0)</strong> <br>
<span class="tag-color tag-color-named" data-value="green" style="color: green">Дескриптор 0 а по техническому Windows Handle = 0 мы получаем контекст полностью всех окон как один глобальный<br>
другими словами Мы можем рисовать прямо на монитореб, конечно это только для GetDC.<br>
Тут уже от тебя зависит что тебе использовать GetDC или GetWindowDC</span>]]></description>
        <author>NikNet_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1827895</guid>
        <pubDate>Tue, 08 Jan 2008 01:09:55 +0000</pubDate>
        <title>В чём отличия GetWindowDC от GetDC?</title>
        <link>https://forum.sources.ru/index.php?showtopic=218022&amp;view=findpost&amp;p=1827895</link>
        <description><![CDATA[^D^ima: По описанию похожи:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function GetWindowDC; external user32 name &#39;GetWindowDC&#39;;</div><div class="code_line">function GetWindowDC(hWnd: HWND): HDC; stdcall;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">function GetDC; external user32 name &#39;GetDC&#39;;</div><div class="code_line">function GetDC(hWnd: HWND): HDC; stdcall;</div></ol></div></div></div></div><br>
<br>
Если я хочу вывести, к примеру, текст на GetDesktopWindow, мне нужно пользоваться GetWindowDC. Если я пользуюсь GetDC, то для того чтобы текст появился на экране нужно или выгрузить окно FindWindow(&#39;Progman&#39;,&#39;Program Manager&#39;)(Окно с иконками и панель задач, которое распологается поверх GetDesktopWindow) или использовать GetDC(GetWindow(GetDesktopWindow, <strong class='tag-b'>GW_OWNER</strong>))(окно с хендл 0(что за окно кстати???)).]]></description>
        <author>^D^ima</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      </channel>
      </rss>
	