<?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=293710&amp;view=findpost&amp;p=2492469</guid>
        <pubDate>Mon, 01 Feb 2010 12:15:18 +0000</pubDate>
        <title>WM_PRINTCLIENT для перекрытых элементов управления</title>
        <link>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2492469</link>
        <description><![CDATA[Maksim V.: Спасибо конечно, но это не то что хотелось. Мне не нужна простая отрисовка текста в окне (понятно что тут просто пустую кисть возвращают), я хочу сам выводить, например, свою анимацию и прочие графические прибамбасы.<br>Вобщем так, блин, чтобы уж совсем было понятно чего есть и чего надо. Есть вобщем процедура для подмены оконной функции на свою для отрисовки (создаю свой контрол так сказать, со своими сообщениями и т.д., просто не хочу оконный класс новый создавать, пойдет и обычный статик для таких целей). Ну, например, есть void CreateMyDrawControl(HWND hStatic), где выполняю подмену оконной процедуры этого hStatic и все. А в новой оконной процедурке обрабатываю WM_PAINT и WM_ERASEBKGND как мне надо. Все, больше ничего не делаю и в родитель не лезу для окучивания всяких там WM_CTLCOLORSTATIC и прочих прибамбасов - теперь я буду определять отрисовку, а не стандартная оконная процедура статика, так что здесь этот WM_CTLCOLORSTATIC идет лесом.<br>Вот. :huh:]]></description>
        <author>Maksim V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491949</guid>
        <pubDate>Sun, 31 Jan 2010 23:57:22 +0000</pubDate>
        <title>WM_PRINTCLIENT для перекрытых элементов управления</title>
        <link>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491949</link>
        <description><![CDATA[kero_xmemor: А почему &quot;как бы&quot;, почему не просто Transparent ?<br>Ну, примерно, как здесь: http://files.rsdn.ru/42164/ws_ex_transparent.zip]]></description>
        <author>kero_xmemor</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491939</guid>
        <pubDate>Sun, 31 Jan 2010 23:25:00 +0000</pubDate>
        <title>WM_PRINTCLIENT для перекрытых элементов управления</title>
        <link>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491939</link>
        <description><![CDATA[Maksim V.: Ну пойдем другим путем. Вот шаблон.<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">101 DIALOGEX 0, 0, 150, 50</div><div class="code_line">STYLE DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU</div><div class="code_line">CAPTION &quot;Project&quot;</div><div class="code_line">LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US</div><div class="code_line">FONT 8, &quot;MS Shell Dlg&quot;, FW_NORMAL, FALSE, 1</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; CONTROL &quot;Static 1&quot;, 101, STATIC, SS_CENTER | WS_CHILD | WS_VISIBLE, 15, 15, 75, 10 </div><div class="code_line">&nbsp;&nbsp; CONTROL &quot;Static 2&quot;, 102, STATIC, SS_CENTER | WS_CHILD | WS_VISIBLE, 5, 5, 100, 25 </div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Static2 перекрывает собой Static1 как видно из координат. Надо отрисовать фон Static1 на Static2 + фон от диалогового окна самого.<br>
Подменяю оконную процедуру Static2 и рисую что надо. В WM_PAINT для отрисовки фона от родительского диалогового окна использую код:<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">//</div><div class="code_line">CallWindowProc(OldStatProc, GetParent(hWnd), WM_PRINTCLIENT, hdcMem, PRF_CLIENT)</div><div class="code_line">//</div></ol></div></div></div></div><br>
Из hdcMem делаю BitBlt в HDC, полученный через BeginPaint.<br>
<br>
Теперь нужно позаимствовать фон от скрытого Static1, можно конечно например GetDlgItem(GetParent(hWnd), 101) использовтаь, но это привязка уже идет. Все &quot;работы&quot; проводятся только для Static2 и в процедуру для установки сабклассинга подается только HWND Static2, соответственно потом удаляется подобным способом эта нахлобучка - то есть указывается hWnd одного элемента и не важно сколько должно быть под ним еще контролов, но их содержимое надо стырить для отрисовки.<br>
<br>
Хочу в итоге сделать как-бы Transparent контрол и вдальнейшем на нем выводить текст, планирую приспособить под бегущую строку. Соответственно для закрашиваемого фона надо этот винегрет.]]></description>
        <author>Maksim V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491914</guid>
        <pubDate>Sun, 31 Jan 2010 22:47:23 +0000</pubDate>
        <title>WM_PRINTCLIENT для перекрытых элементов управления</title>
        <link>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491914</link>
        <description><![CDATA[kero_xmemor: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Надеюсь понятно объяснил что требуется</div></div><br>
Боюсь, что нет.]]></description>
        <author>kero_xmemor</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491904</guid>
        <pubDate>Sun, 31 Jan 2010 22:33:46 +0000</pubDate>
        <title>WM_PRINTCLIENT для перекрытых элементов управления</title>
        <link>https://forum.sources.ru/index.php?showtopic=293710&amp;view=findpost&amp;p=2491904</link>
        <description><![CDATA[Maksim V.: Здравствуйте. Есть диалоговое окно - родитель. На нём расположено 2 дочерних Static элемента, при чем один перекрывает другой частично. Можно ли через WM_PRINTCLIENT на видимом &quot;верхнем&quot; Static элементе отобразить фон от перекрытого (см. далее)? Требуется сделать без явного указания HWND перекрываемого элемента - хочу завернуть в сабклассинг все это дело и вызывать только процедурки инициализации/деинициализации своей отрисовки, а там уже свое рисовать что надо, главное только HWND самого статика подсовывать. Надеюсь понятно объяснил что требуется. Просто я запутался немного, впринципе нужен какой-нибудь GetParent, но только чтобы хэндл можно было узнать хэндл контрола, который перекрыт нашим рисуемым. Как проще это сделать? Требуется для отрисовки своих элементов управления.]]></description>
        <author>Maksim V.</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      </channel>
      </rss>
	