<?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=417753&amp;view=findpost&amp;p=3826639</guid>
        <pubDate>Fri, 27 Mar 2020 07:08:59 +0000</pubDate>
        <title>Прозрачность формы-гаджета</title>
        <link>https://forum.sources.ru/index.php?showtopic=417753&amp;view=findpost&amp;p=3826639</link>
        <description><![CDATA[manemale: Решил сделать гаджет-песочные часы. Вставил на форму Image1, в нём Bitmap с изображением песочных часов. Те области часов, которые должны быть прозрачными, я залил красным цветом. Далее задал свойства формы:<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">void __fastcall TForm1::FormCreate(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">Form1-&#62;Color=255;</div><div class="code_line">Form1-&#62;TransparentColor=true;</div><div class="code_line">Form1-&#62;TransparentColorValue=255;</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><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">bool SetToDesktop() {</div><div class="code_line">&nbsp;&nbsp;HWND listViewhwnd = FindWindowA(&quot;Progman&quot;, NULL);</div><div class="code_line">&nbsp;&nbsp;if(listViewhwnd) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;listViewhwnd = FindWindowExA(listViewhwnd, NULL, &quot;SHELLDLL_DefView&quot;, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(listViewhwnd) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;listViewhwnd = FindWindowExA(listViewhwnd, NULL, &quot;SysListView32&quot;, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if(listViewhwnd) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Form1-&#62;BorderStyle = bsNone;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;::SetParent(Form1-&#62;Handle, listViewhwnd);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return true;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;return false;</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">__fastcall TForm1::TForm1(TComponent* Owner)</div><div class="code_line">&nbsp;&nbsp; &nbsp;: TForm(Owner)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;if(!SetToDesktop())ShowMessage(&quot;Ошибка SetToDesktop&quot;);</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int X, int Y)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;long SC_DRAGMOVE = 0xF012;</div><div class="code_line">&nbsp;&nbsp;if(Button == mbLeft) {</div><div class="code_line">&nbsp;&nbsp;ReleaseCapture();</div><div class="code_line">&nbsp;&nbsp;SendMessage(Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div></ol></div></div></div></div><br>
Теперь мой гаджет стал красным, прозрачность исчезла, т.е. свойство Form1-&gt;TransparentColor=true не работает. Тогда я задал свойство TransparentColor=true в инспекторе объектов в свойствах формы. При запуске приложения форму вообще перестало быть видно. Строка, из-за которой перестала работать прозрачность формы: <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">::SetParent(Form1-&#62;Handle, listViewhwnd);</div></ol></div></div></div></div><br>
Язык C++Builder 2009. Операционная система Windows Vista. Какими мыслями поделитесь, в каком направлении мне рыть? Попробую в других операционных системах и других версиях C++Builder.]]></description>
        <author>manemale</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      </channel>
      </rss>
	