<?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[Beliebig viele Fenster organisieren]]></title><description><![CDATA[<p>Mein Programm soll Notizen verwalten, sowas gibts zwar schon aber taugliche Programme nur als Shareware. Nun denn solls ne Freeware von sowas auch geben. Über ein Symbol in der Taskbar und dessen PopupMenu lässt sich eine neue Notiz erstellen.</p>
<p>a) Wie eine Notiz aussieht weiß ich, kann nun jedes Notizfenster die selbe Wnd-Klasse haben? Also reicht ein Aufruf von CreateWindowEx() oder muss ich die Klasse jedesmal neu registrieren mit RegisterClassEx()?</p>
<p>b) Ich zeichne mein Fenster selbst, es soll keine Titelleiste haben und keinen Rahmen, ich hab mir gedacht WM_NCPAINT abzufangen reicht, aber dann kann man meine Notiz nicht mehr verschieben, das sollte aber in irgendeiner Weise doch noch möglich sein. Gibst da ein CTRL, das das Verschieben des Fensters möglich macht wenn man mit der Maus draufklickt?</p>
<p>c) Nun hat aber da selbe Class jedes Notiz auch die selbe WndProc. Ist ja auch soweit kein Problem aber wie kann ich jedem HWND eine eindeutige ID zuweisen? Wenn das Programm beendet und somit meine Notiz-Fensterchen zerstört werden soll der Inhalt noch vorher abgespeichert werden, woher wissen die jetzt aber wie der Dateiname lauten soll (zwei Gleiche Notiztitel sind möglich). Was tun?</p>
<p>d) Die Notizen sollen natürlich Z-Order-mäßig im Hintergrund sein und zudem nicht in der Task-Leiste aufscheinen. Nun was tun? Wenn ich sie als WM_POPUP deklariere hab ich sie zwar aus der Taskleiste raus, aber einmal weggeklickt kommt das Fenster nie wieder. Kann man irgendwie das Fenster genau DESKTOP-Z-ORDER+0,5 platzieren wenn das erste nächste Fenster DESKTOP-Z-ORDER+1 hat?</p>
<p>Erstmal genug Fragen.</p>
<p>Gehe ich das Problem eventuell auch falsch an? Wie würdet ihr dieses &quot;dynamische Fentererzeugen&quot; realisieren?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/75657/beliebig-viele-fenster-organisieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 05:38:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/75657.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Jun 2004 20:36:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Beliebig viele Fenster organisieren on Wed, 02 Jun 2004 20:36:42 GMT]]></title><description><![CDATA[<p>Mein Programm soll Notizen verwalten, sowas gibts zwar schon aber taugliche Programme nur als Shareware. Nun denn solls ne Freeware von sowas auch geben. Über ein Symbol in der Taskbar und dessen PopupMenu lässt sich eine neue Notiz erstellen.</p>
<p>a) Wie eine Notiz aussieht weiß ich, kann nun jedes Notizfenster die selbe Wnd-Klasse haben? Also reicht ein Aufruf von CreateWindowEx() oder muss ich die Klasse jedesmal neu registrieren mit RegisterClassEx()?</p>
<p>b) Ich zeichne mein Fenster selbst, es soll keine Titelleiste haben und keinen Rahmen, ich hab mir gedacht WM_NCPAINT abzufangen reicht, aber dann kann man meine Notiz nicht mehr verschieben, das sollte aber in irgendeiner Weise doch noch möglich sein. Gibst da ein CTRL, das das Verschieben des Fensters möglich macht wenn man mit der Maus draufklickt?</p>
<p>c) Nun hat aber da selbe Class jedes Notiz auch die selbe WndProc. Ist ja auch soweit kein Problem aber wie kann ich jedem HWND eine eindeutige ID zuweisen? Wenn das Programm beendet und somit meine Notiz-Fensterchen zerstört werden soll der Inhalt noch vorher abgespeichert werden, woher wissen die jetzt aber wie der Dateiname lauten soll (zwei Gleiche Notiztitel sind möglich). Was tun?</p>
<p>d) Die Notizen sollen natürlich Z-Order-mäßig im Hintergrund sein und zudem nicht in der Task-Leiste aufscheinen. Nun was tun? Wenn ich sie als WM_POPUP deklariere hab ich sie zwar aus der Taskleiste raus, aber einmal weggeklickt kommt das Fenster nie wieder. Kann man irgendwie das Fenster genau DESKTOP-Z-ORDER+0,5 platzieren wenn das erste nächste Fenster DESKTOP-Z-ORDER+1 hat?</p>
<p>Erstmal genug Fragen.</p>
<p>Gehe ich das Problem eventuell auch falsch an? Wie würdet ihr dieses &quot;dynamische Fentererzeugen&quot; realisieren?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531973</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Wed, 02 Jun 2004 20:36:42 GMT</pubDate></item><item><title><![CDATA[Reply to Beliebig viele Fenster organisieren on Wed, 02 Jun 2004 21:30:37 GMT]]></title><description><![CDATA[<p>Bevor du anfängst: <a href="http://www.codeproject.com/wtl/stickynotes.asp" rel="nofollow">http://www.codeproject.com/wtl/stickynotes.asp</a></p>
<p>ansonsten:</p>
<p>1. einmal reicht es, wenn du versuchst die gleiche Fenterklasse ein zweites Mal zu registrieren, schlägt RegisterClass bzw. RegisterClassEx fehl.<br />
2. WM_NCHITTEST abfangen</p>
<pre><code class="language-cpp">UINT uHitTest = DefWindowProc(hWnd,uMsg,wParam,lParam);

if (uHitTest == HTCLIENT)
	uHitTest = HTCAPTION;

return uHitTest;
</code></pre>
<p>3. du könntest für jedes Fenster eine struct definieren, die du dann jedem Fenster Handle zuweist (SetWindowLong - GWL_USERDATA oder SetProp). In C++ würde man eine Map nehmen oder alles in einer Klasse kapseln. Jede Instanz der Klasse stellt ein Fenster dar.<br />
4. WS_EX_TOOLWINDOW und WS_EX_TOPMOST?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531991</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Wed, 02 Jun 2004 21:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Beliebig viele Fenster organisieren on Thu, 03 Jun 2004 08:34:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>zu b:</p>
<p>mit folgendem Code kannst du das Fenster bewegen, indem du die linke Maustaste gedrückt hältst:</p>
<pre><code class="language-cpp">case WM_LBUTTONDOWN:
		ReleaseCapture();
		SendMessage(hWnd, WM_SYSCOMMAND, SC_MOVE + 1, 0);
		return 0;
</code></pre>
<p>Falls du das Fenster mit einem anderem Control bewegen willst, musst dieses Subclassen und WM_LBUTTONDOWN abfangen.</p>
<p>MfG<br />
tuküe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/532139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532139</guid><dc:creator><![CDATA[tuküe]]></dc:creator><pubDate>Thu, 03 Jun 2004 08:34:17 GMT</pubDate></item><item><title><![CDATA[Reply to Beliebig viele Fenster organisieren on Thu, 03 Jun 2004 11:23:54 GMT]]></title><description><![CDATA[<p>Danke erstmal.</p>
<p>Ich werd mir mal den Source von Soruceforge ziehen und schauen wies die gemacht haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Die haben meistens bessere Ideen und mehr Verstand <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    />, ich muss dann nur noch an den richtigen Stellen const adden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/532248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532248</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 03 Jun 2004 11:23:54 GMT</pubDate></item></channel></rss>