<?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[SetPixel funktioniert im Loop nur 1 mal?..]]></title><description><![CDATA[<p>Guten Tag,<br />
ich wollte mir mit der API Funktion SetPixel ein Crosshair Tool für z.B.: Counter-Strike schreiben.<br />
[Es ist kein Cheat o.ä., aber ich spiele damit lieber <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>Der Code sieht wie folgt aus:</p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

int main(int argc, char *argv[]) {
	if(argc &lt; 1) exit(NULL);
	long x,y;
	HWND h = FindWindow(NULL,argv[1]);
	HDC dc = GetDC(h);
	int c_x =800/2,c_y=600/2,hs=26/2;
	while(true) {
		if(GetAsyncKeyState(0x01)) {
			exit(NULL);
		}
		for(x=c_x-hs;x&lt;c_x+hs;x++) {
			SetPixel(dc,x,c_y,RGB(255,0,0));
		}
		for(y=c_y-hs;y&lt;c_y+hs;y++) {
			SetPixel(dc,c_x,y,RGB(255,0,0));
		}
		ReleaseDC(h, dc);
		Sleep(5);
	}
return 0;
}
</code></pre>
<p>c_x, c_y und hs stehen für die Auflösung und die Größe des Crosshairs.<br />
Nun seh ich es einmal, und dann nie wieder, obwohl das Ganze in einem Loop steht und sich eigentlich immer wiederholen müsste.<br />
Und somit müsste das Crosshair doch eigentlich immer wieder neu aufgemalt werden.. oder nicht?<br />
Was habe ich übersehen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich freue mich schon auf eure Hilfe, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178067/setpixel-funktioniert-im-loop-nur-1-mal</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 16:50:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178067.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Apr 2007 23:09:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SetPixel funktioniert im Loop nur 1 mal?.. on Fri, 06 Apr 2007 23:09:58 GMT]]></title><description><![CDATA[<p>Guten Tag,<br />
ich wollte mir mit der API Funktion SetPixel ein Crosshair Tool für z.B.: Counter-Strike schreiben.<br />
[Es ist kein Cheat o.ä., aber ich spiele damit lieber <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>Der Code sieht wie folgt aus:</p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

int main(int argc, char *argv[]) {
	if(argc &lt; 1) exit(NULL);
	long x,y;
	HWND h = FindWindow(NULL,argv[1]);
	HDC dc = GetDC(h);
	int c_x =800/2,c_y=600/2,hs=26/2;
	while(true) {
		if(GetAsyncKeyState(0x01)) {
			exit(NULL);
		}
		for(x=c_x-hs;x&lt;c_x+hs;x++) {
			SetPixel(dc,x,c_y,RGB(255,0,0));
		}
		for(y=c_y-hs;y&lt;c_y+hs;y++) {
			SetPixel(dc,c_x,y,RGB(255,0,0));
		}
		ReleaseDC(h, dc);
		Sleep(5);
	}
return 0;
}
</code></pre>
<p>c_x, c_y und hs stehen für die Auflösung und die Größe des Crosshairs.<br />
Nun seh ich es einmal, und dann nie wieder, obwohl das Ganze in einem Loop steht und sich eigentlich immer wiederholen müsste.<br />
Und somit müsste das Crosshair doch eigentlich immer wieder neu aufgemalt werden.. oder nicht?<br />
Was habe ich übersehen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich freue mich schon auf eure Hilfe, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1260977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260977</guid><dc:creator><![CDATA[mister_xyz]]></dc:creator><pubDate>Fri, 06 Apr 2007 23:09:58 GMT</pubDate></item><item><title><![CDATA[Reply to SetPixel funktioniert im Loop nur 1 mal?.. on Sat, 07 Apr 2007 06:53:13 GMT]]></title><description><![CDATA[<p>das geht so nicht...das spiel überzeichnet dein &quot;crosshair&quot; einfach wieder.</p>
<p>das könnte hilfreich sein:</p>
<p><a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=359319" rel="nofollow">http://www.gamedev.net/community/forums/topic.asp?topic_id=359319</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1260982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260982</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sat, 07 Apr 2007 06:53:13 GMT</pubDate></item><item><title><![CDATA[Reply to SetPixel funktioniert im Loop nur 1 mal?.. on Fri, 06 Apr 2007 23:22:12 GMT]]></title><description><![CDATA[<p>Hmm,<br />
in Visual Basic klappt genau der gleiche Code (an VB angepasst und in einer Timer-Prozedur) einwandfrei.<br />
Das Programm zeichnet das Crosshair, und nach dem Timer-Intervall wird es in der Timer-Prozedur erneut gezeichnet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1260986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260986</guid><dc:creator><![CDATA[mister_xyz]]></dc:creator><pubDate>Fri, 06 Apr 2007 23:22:12 GMT</pubDate></item><item><title><![CDATA[Reply to SetPixel funktioniert im Loop nur 1 mal?.. on Fri, 06 Apr 2007 23:31:30 GMT]]></title><description><![CDATA[<p>Ok, ich glaube, dass ich es nun richtig habe..<br />
Seltsamerweise, obwohl das in VB nicht der Fall war, ist das ReleaseDC fehl am Platze.<br />
Danke für deine Hilfe <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1260988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260988</guid><dc:creator><![CDATA[mister_xyz]]></dc:creator><pubDate>Fri, 06 Apr 2007 23:31:30 GMT</pubDate></item></channel></rss>