<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Edit Style ändern]]></title><description><![CDATA[<p>Hi,<br />
ich seh mal wieder den Sprichwörtl. Wald nicht...</p>
<p>Ich möchte den Style eines gesubclassten Edit-Controls ändern.</p>
<pre><code class="language-cpp">LRESULT CALLBACK SubEdit (HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
	switch(msg)
	{
		case WM_LBUTTONDOWN:
			if (ONETIME)
				break;
			else
			{				
				SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) | ES_PASSWORD);
                      //edit mit SetWindowPos() gehts auch nicht
				SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); 

				SetWindowText(hwnd, &quot;&quot;);
				ONETIME = true;
			}
			break;
	}
	return CallWindowProc ((WNDPROC) OldEditProc, hwnd, msg, wParam, lParam);
}
</code></pre>
<p>Das ONETIME ist lediglich dort, damit er nur einmal beim Klick auf das Edit den style ändert.</p>
<p>So wurde es erstellt und gesubclassed:</p>
<pre><code class="language-cpp">hEdit = CreateWindow(&quot;edit&quot;, &quot;&quot;, WS_VISIBLE|WS_CHILD| ES_LEFT|ES_AUTOHSCROLL, 
					     150, 100, 200, 20, hwnd, (HMENU)5993, GetModuleHandle (NULL),  0);

OldEditProc = SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR) SubEdit);
</code></pre>
<p>ONETIME wird zurückgesetzt wenn sich der Dialog, indem sich das Edit befindet öffnet (in der WM_INITDIALOG).</p>
<p>Ja, mehr gibts eig. nicht zu sagen. Hat jemand spontan eine Idee?<br />
Bei Fragen, fragen.</p>
<p>Danke!<br />
Bis Bald ein.brot</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/102792/edit-style-ändern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 09:50:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/102792.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Mar 2005 19:21:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Edit Style ändern on Tue, 01 Mar 2005 19:50:47 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich seh mal wieder den Sprichwörtl. Wald nicht...</p>
<p>Ich möchte den Style eines gesubclassten Edit-Controls ändern.</p>
<pre><code class="language-cpp">LRESULT CALLBACK SubEdit (HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
	switch(msg)
	{
		case WM_LBUTTONDOWN:
			if (ONETIME)
				break;
			else
			{				
				SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) | ES_PASSWORD);
                      //edit mit SetWindowPos() gehts auch nicht
				SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); 

				SetWindowText(hwnd, &quot;&quot;);
				ONETIME = true;
			}
			break;
	}
	return CallWindowProc ((WNDPROC) OldEditProc, hwnd, msg, wParam, lParam);
}
</code></pre>
<p>Das ONETIME ist lediglich dort, damit er nur einmal beim Klick auf das Edit den style ändert.</p>
<p>So wurde es erstellt und gesubclassed:</p>
<pre><code class="language-cpp">hEdit = CreateWindow(&quot;edit&quot;, &quot;&quot;, WS_VISIBLE|WS_CHILD| ES_LEFT|ES_AUTOHSCROLL, 
					     150, 100, 200, 20, hwnd, (HMENU)5993, GetModuleHandle (NULL),  0);

OldEditProc = SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR) SubEdit);
</code></pre>
<p>ONETIME wird zurückgesetzt wenn sich der Dialog, indem sich das Edit befindet öffnet (in der WM_INITDIALOG).</p>
<p>Ja, mehr gibts eig. nicht zu sagen. Hat jemand spontan eine Idee?<br />
Bei Fragen, fragen.</p>
<p>Danke!<br />
Bis Bald ein.brot</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735403</guid><dc:creator><![CDATA[ein.brot]]></dc:creator><pubDate>Tue, 01 Mar 2005 19:50:47 GMT</pubDate></item></channel></rss>