<?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[Draggable CDialog]]></title><description><![CDATA[<p>Meine Ideen habe ich aus <a href="http://www.codeproject.com/dialog/dragwindows.asp?df=100&amp;forumid=4307&amp;select=233430#xx233430xx" rel="nofollow">diesem codeproject Artikel</a> entnommen.</p>
<p>Mein Code ist jetzt wirklich 1:1 wie in dem besagten Artikel... Soweit ich rausgefunden habe liegt es daran, dass ich die OnCnHitTest() Funktion nicht korrekt überschreiben kann:</p>
<p>Also um es ganz klar auszurücken:<br />
In meiner Dialogklasse CCounterDlg.h steht: ( <a href="http://pastebin.ca/379965" rel="nofollow">http://pastebin.ca/379965</a> )</p>
<pre><code class="language-cpp">public:
	afx_msg UINT OnNcHitTest(CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	bool m_mousedown;
</code></pre>
<p>1:1 steht es so im Artikel von codeproject <a href="http://pastebin.ca/379964" rel="nofollow">http://pastebin.ca/379964</a></p>
<p>Implementiere die Funktion:</p>
<pre><code class="language-cpp">UINT CCounterDlg::OnNcHitTest(CPoint point)
{
	AfxMessageBox(&quot;boo&quot;);
	CRect r;
	GetClientRect(&amp;r);
	ClientToScreen(&amp;r);

	if(r.PtInRect(point))
	{		
		if(m_mousedown)
		{		
			return HTCAPTION;
		}
	}
	return CDialog::OnNcHitTest(point);
}
</code></pre>
<p>Ausser dem Objektnamen gibt es keinen Unterschied (meine komplette cppSource hier: <a href="http://pastebin.ca/379973" rel="nofollow">http://pastebin.ca/379973</a> )<br />
Codeprojekt Artikelsource: <a href="http://pastebin.ca/379976" rel="nofollow">http://pastebin.ca/379976</a></p>
<p>Wenn ich jetzt in meiner Source in OnNCHitTest() ein AfxMessageBox(&quot;boo&quot;) mache sehe ich die Meldung nie, mache dasselbe im codeprojekt Source bekomm ich endlos viele Messageboxen - was mir sagt dass in meiner Source etwas mit den Nachrichten nicht stimmt.. Ich arbeite mit Visual <a href="http://Studio.NET" rel="nofollow">Studio.NET</a> 2003! Ich hab die afx_msg UINT OnNcHitTest(CPoint point);... einfach in meine Klasse kopiert und denke desswegen wird etwas in der Nachrichtentabelle nicht korrekt erstellt? Wenn es an dem liegt: Wie bzw Wo in Visual Studio 2003 kann ich diese MessageMaps definieren damit die Nachricht WM_NCHITTEST and meine OnNcHitTest() Funktion geleitet wird? In VC++ 6.0 gibts ja den netten ClassWizard mit seinen MessageMaps... <a href="http://www.coding-help.de/hilfe.html" rel="nofollow">http://www.coding-help.de/hilfe.html</a> &lt;-- hier hab ich mich auch schon rumgeschaut nur ist &quot;Erreignishandler wird hinzugefügt&quot; deaktiviert wenn ich auf den Dialog (kein Control?) klick. Ich will ja mein Dialog draggable machen und nicht ein control auf meinem Dialog.</p>
<p>Ich weiss nicht woran es sonst liegen kann.<br />
Hoffentlich kann mir jemand Helfen..</p>
<p>MfG</p>
<p>**<br />
Edit: Problem gelöst! Thread kann geschlossen werden**</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174785/draggable-cdialog</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 05:16:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174785.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Mar 2007 17:47:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Draggable CDialog on Sat, 03 Mar 2007 18:53:18 GMT]]></title><description><![CDATA[<p>Meine Ideen habe ich aus <a href="http://www.codeproject.com/dialog/dragwindows.asp?df=100&amp;forumid=4307&amp;select=233430#xx233430xx" rel="nofollow">diesem codeproject Artikel</a> entnommen.</p>
<p>Mein Code ist jetzt wirklich 1:1 wie in dem besagten Artikel... Soweit ich rausgefunden habe liegt es daran, dass ich die OnCnHitTest() Funktion nicht korrekt überschreiben kann:</p>
<p>Also um es ganz klar auszurücken:<br />
In meiner Dialogklasse CCounterDlg.h steht: ( <a href="http://pastebin.ca/379965" rel="nofollow">http://pastebin.ca/379965</a> )</p>
<pre><code class="language-cpp">public:
	afx_msg UINT OnNcHitTest(CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	bool m_mousedown;
</code></pre>
<p>1:1 steht es so im Artikel von codeproject <a href="http://pastebin.ca/379964" rel="nofollow">http://pastebin.ca/379964</a></p>
<p>Implementiere die Funktion:</p>
<pre><code class="language-cpp">UINT CCounterDlg::OnNcHitTest(CPoint point)
{
	AfxMessageBox(&quot;boo&quot;);
	CRect r;
	GetClientRect(&amp;r);
	ClientToScreen(&amp;r);

	if(r.PtInRect(point))
	{		
		if(m_mousedown)
		{		
			return HTCAPTION;
		}
	}
	return CDialog::OnNcHitTest(point);
}
</code></pre>
<p>Ausser dem Objektnamen gibt es keinen Unterschied (meine komplette cppSource hier: <a href="http://pastebin.ca/379973" rel="nofollow">http://pastebin.ca/379973</a> )<br />
Codeprojekt Artikelsource: <a href="http://pastebin.ca/379976" rel="nofollow">http://pastebin.ca/379976</a></p>
<p>Wenn ich jetzt in meiner Source in OnNCHitTest() ein AfxMessageBox(&quot;boo&quot;) mache sehe ich die Meldung nie, mache dasselbe im codeprojekt Source bekomm ich endlos viele Messageboxen - was mir sagt dass in meiner Source etwas mit den Nachrichten nicht stimmt.. Ich arbeite mit Visual <a href="http://Studio.NET" rel="nofollow">Studio.NET</a> 2003! Ich hab die afx_msg UINT OnNcHitTest(CPoint point);... einfach in meine Klasse kopiert und denke desswegen wird etwas in der Nachrichtentabelle nicht korrekt erstellt? Wenn es an dem liegt: Wie bzw Wo in Visual Studio 2003 kann ich diese MessageMaps definieren damit die Nachricht WM_NCHITTEST and meine OnNcHitTest() Funktion geleitet wird? In VC++ 6.0 gibts ja den netten ClassWizard mit seinen MessageMaps... <a href="http://www.coding-help.de/hilfe.html" rel="nofollow">http://www.coding-help.de/hilfe.html</a> &lt;-- hier hab ich mich auch schon rumgeschaut nur ist &quot;Erreignishandler wird hinzugefügt&quot; deaktiviert wenn ich auf den Dialog (kein Control?) klick. Ich will ja mein Dialog draggable machen und nicht ein control auf meinem Dialog.</p>
<p>Ich weiss nicht woran es sonst liegen kann.<br />
Hoffentlich kann mir jemand Helfen..</p>
<p>MfG</p>
<p>**<br />
Edit: Problem gelöst! Thread kann geschlossen werden**</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238593</guid><dc:creator><![CDATA[rico.k]]></dc:creator><pubDate>Sat, 03 Mar 2007 18:53:18 GMT</pubDate></item><item><title><![CDATA[Reply to Draggable CDialog on Sat, 03 Mar 2007 19:07:57 GMT]]></title><description><![CDATA[<p>Ist denn der ON_NCHITSTESt uach in der Messagemap eingetragen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238628</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 03 Mar 2007 19:07:57 GMT</pubDate></item><item><title><![CDATA[Reply to Draggable CDialog on Sun, 04 Mar 2007 10:07:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">UINT CMyAppDlg::OnNcHitTest(CPoint point)
{
    UINT nHit = CDialog::OnNcHitTest(point);
    return (nHit == HTCLIENT ? HTCAPTION : nHit);
}
</code></pre>
<p>Und dein Fehler ist, wie Martin schon sagte, das du die Nachricht nicht in der Messagemap angelegt hast ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238814</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 04 Mar 2007 10:07:14 GMT</pubDate></item></channel></rss>