<?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[ScreenToClient?]]></title><description><![CDATA[<p>Hi,</p>
<p>in einer Anwendung, die nicht auf dem ganzen Bildschirm angezeigt wird,<br />
möchte ich gerne die Mauskoordinaten ermitteln.</p>
<p>Leider erhalte ich immer die Koordinaten relativ zum Desktop.<br />
Ich würde es aber halt nur für den Fensterbereich ermitteln wollen.</p>
<p>Jetzt habe ich schon etwas gelesen und ScreenToClient gefunden.<br />
Leider ist mir die Verwendung nicht ganz klar.</p>
<p>Hier erstmal, wie ich bislang die Pixel ermittel(nicht wundern ist ein MFC-Projekt):</p>
<pre><code class="language-cpp">HWND hWnd=::FindWindow(NULL,&quot;Plotter&quot;);//externes Programm &quot;Plotter&quot;
HDC hdc=::GetDC(hWnd);
POINT pt; 
GetCursorPos(&amp;pt); //relativ zum ganzen Desktop... :-1:
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/191649/screentoclient</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 04:34:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191649.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Sep 2007 09:54:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 09:54:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>in einer Anwendung, die nicht auf dem ganzen Bildschirm angezeigt wird,<br />
möchte ich gerne die Mauskoordinaten ermitteln.</p>
<p>Leider erhalte ich immer die Koordinaten relativ zum Desktop.<br />
Ich würde es aber halt nur für den Fensterbereich ermitteln wollen.</p>
<p>Jetzt habe ich schon etwas gelesen und ScreenToClient gefunden.<br />
Leider ist mir die Verwendung nicht ganz klar.</p>
<p>Hier erstmal, wie ich bislang die Pixel ermittel(nicht wundern ist ein MFC-Projekt):</p>
<pre><code class="language-cpp">HWND hWnd=::FindWindow(NULL,&quot;Plotter&quot;);//externes Programm &quot;Plotter&quot;
HDC hdc=::GetDC(hWnd);
POINT pt; 
GetCursorPos(&amp;pt); //relativ zum ganzen Desktop... :-1:
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1359270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359270</guid><dc:creator><![CDATA[Plow]]></dc:creator><pubDate>Wed, 05 Sep 2007 09:54:01 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 10:08:58 GMT]]></title><description><![CDATA[<p>Ja, nu hast du ja schon mal das HWND des externen Fensters.</p>
<p>Die MSDN <a href="http://msdn2.microsoft.com/en-us/library/aa923200.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/aa923200.aspx</a> sagt:</p>
<pre><code>BOOL ScreenToClient(HWND hWnd, LPPOINT lpPoint);
</code></pre>
<p>Der Aufruf wäre demnach also:</p>
<pre><code>ScreenToClient(hWnd, &amp;pt);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1359282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359282</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 05 Sep 2007 10:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 10:17:11 GMT]]></title><description><![CDATA[<p>Hi Sepp,</p>
<p>ich habe es inzwischen auch schon gelesen, erhalte aber negative (wieder Desktop) - Koordinaten.</p>
<p>Der Code ist nicht schön. Und ich bin noch in der Lernphase <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<pre><code class="language-cpp">HWND hWnd=::FindWindow(NULL,&quot;Plotter&quot;);
HDC hdc=::GetDC(hWnd);

int xpos=0;
int ypos=0;

POINT pt = { xpos, ypos }; 
::ScreenToClient(hWnd, &amp;pt); 

int xwert=0;
int ywert=0;

xwert=pt.x;
ywert=pt.y;
</code></pre>
<p>Sry für das viele MFC <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359289</guid><dc:creator><![CDATA[Plow]]></dc:creator><pubDate>Wed, 05 Sep 2007 10:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 10:23:11 GMT]]></title><description><![CDATA[<p>wenn du negative koordinaten erhälst, ist der mauszeiger oberhalb bzw. links von deinem client window würd ich jetzt mal spontan raten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359294</guid><dc:creator><![CDATA[Rumpler]]></dc:creator><pubDate>Wed, 05 Sep 2007 10:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 10:44:30 GMT]]></title><description><![CDATA[<p>Das hat absolut nichts mit MFC zu tun und der Code den du da hast könnte genauso gut, jedes MFC freie C++ Projekt sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359306</guid><dc:creator><![CDATA[yogle|work]]></dc:creator><pubDate>Wed, 05 Sep 2007 10:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 10:45:59 GMT]]></title><description><![CDATA[<p>yogle|work schrieb:</p>
<blockquote>
<p>Das hat absolut nichts mit MFC zu tun und der Code den du da hast könnte genauso gut, jedes MFC freie C++ Projekt sein...</p>
</blockquote>
<p>unnütz++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359308</guid><dc:creator><![CDATA[workerthread]]></dc:creator><pubDate>Wed, 05 Sep 2007 10:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 15:47:47 GMT]]></title><description><![CDATA[<p>Die Maus befindet sich definitiv im Fenster. Ist der Code ansich denn so richtig<br />
geschrieben, oder habe ich da grobe Fehler gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359563</guid><dc:creator><![CDATA[Plow]]></dc:creator><pubDate>Wed, 05 Sep 2007 15:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 15:59:52 GMT]]></title><description><![CDATA[<p>Warum setzt du xpos und ypos auf 0 statt GetCursorPos() wie ganz oben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359572</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Wed, 05 Sep 2007 15:59:52 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 16:01:10 GMT]]></title><description><![CDATA[<p>das hat doch nix mit seinem problem zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359575</guid><dc:creator><![CDATA[Realist]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 16:09:04 GMT]]></title><description><![CDATA[<p>Der Screen-Punkt ist in seinem Code (0,0).<br />
Nehmen wir mal an der Client-Bereich des Fensters befindet sich an Position (13,37)</p>
<p>Dann wird ScreenToClient() zurückliefern das der Screen-Punkt (0,0) den Client-Koordinaten (-13,-37) entspricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359583</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:09:04 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 16:20:48 GMT]]></title><description><![CDATA[<p>Danke euch. Geeky du hast natürlich recht. Jetzt funktioniert es <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359592</guid><dc:creator><![CDATA[Plow]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:20:48 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 16:22:45 GMT]]></title><description><![CDATA[<p>Oh, sry für die Nachwelt die die Suchfunktion nutzt:</p>
<pre><code class="language-cpp">HWND hWnd=::FindWindow(NULL,&quot;Plotter&quot;);
HDC hdc=::GetDC(hWnd);

POINT pt; 
GetCursorPos(&amp;pt);

::ScreenToClient(hWnd, &amp;pt); 

int xwert=0; 
int ywert=0; 

xwert=pt.x; 
ywert=pt.y;

unsigned long RGB=GetPixel(hdc,xwert,ywert);
unsigned char xxxR = GetRValue(RGB);
unsigned char xxxG = GetGValue(RGB); 
unsigned char xxxB = GetBValue(RGB); 

CString cs_rot,cs_gruen,cs_blau;
cs_rot.Format(&quot;%i&quot;,xxxR);
cs_gruen.Format(&quot;%i&quot;,xxxG);
cs_blau.Format(&quot;%i&quot;,xxxB);

CString farbe;
farbe=cs_rot;
farbe+=&quot;,&quot;;
farbe+=cs_gruen;
farbe+=&quot;,&quot;;
farbe+=cs_blau;

CString xm,ym;

xm.Format(&quot;%i&quot;,xwert);
ym.Format(&quot;%i&quot;,ywert);

CString koor;
koor=&quot;x: &quot;;
koor+=xm;
koor+=&quot;\n\n&quot;;
koor+=&quot;y: &quot;;
koor+=ym;

MessageBox(farbe,&quot;RGB-Wert des Pixel auf dem die Maus steht!&quot;);
MessageBox(koor,&quot;Mauskoordinaten x,y&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1359593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359593</guid><dc:creator><![CDATA[Plow]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 16:40:53 GMT]]></title><description><![CDATA[<p>Hmm sagt mal...wenn ich nun in dem Fenster mit SetCursorPos arbeiten will,<br />
muss ich da zwingend mit SendMessage arbeiten?</p>
<pre><code class="language-cpp">hWnd-&gt;SendMessage(WM_???, 0, MAKELPARAM(400,563)); //welche WM nehmen?
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1359606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359606</guid><dc:creator><![CDATA[Plow]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 17:56:25 GMT]]></title><description><![CDATA[<p>Plow schrieb:</p>
<blockquote>
<p>Hmm sagt mal...wenn ich nun in dem Fenster mit SetCursorPos arbeiten will,<br />
muss ich da zwingend mit SendMessage arbeiten?</p>
<pre><code class="language-cpp">hWnd-&gt;SendMessage(WM_???, 0, MAKELPARAM(400,563)); //welche WM nehmen?
</code></pre>
</blockquote>
<p>Ich verstehe diese Frage nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359665</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 05 Sep 2007 17:56:25 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 18:14:29 GMT]]></title><description><![CDATA[<p>Ich meinte:</p>
<p>Wie kann ich in einer fremden Anwendung die Maus auf eine bestimmte<br />
Koordinate des fremden Fensters setzen. Dazu habe ich ein Beispiel<br />
gepostet, wie ich glaube, dass es gehen würde.</p>
<p>Mit SendMessage halt. Wobei mir nicht klar ist welche Message man schickt.<br />
WM_LBUTTONDOWN führt ja auch gleich zu einem &quot;Klickereignis&quot;...ich will ja<br />
nur bewegen. Nimmt man da sowas wie MOVE?</p>
<p>*grml* Kaum hat man Auftrieb gibts vom MVP voll eins in die Fresse... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1359681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359681</guid><dc:creator><![CDATA[Plow]]></dc:creator><pubDate>Wed, 05 Sep 2007 18:14:29 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 18:39:45 GMT]]></title><description><![CDATA[<p>Plow schrieb:</p>
<blockquote>
<p>Wie kann ich in einer fremden Anwendung die Maus auf eine bestimmte Koordinate des fremden Fensters setzen.</p>
</blockquote>
<p>Probier es mal mit <a href="http://msdn2.microsoft.com/en-us/library/ms648394.aspx" rel="nofollow">SetCursorPos ()</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359699</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 05 Sep 2007 18:39:45 GMT</pubDate></item><item><title><![CDATA[Reply to ScreenToClient? on Wed, 05 Sep 2007 18:49:50 GMT]]></title><description><![CDATA[<p>merker schrieb:</p>
<blockquote>
<p>Plow schrieb:</p>
<blockquote>
<p>Wie kann ich in einer fremden Anwendung die Maus auf eine bestimmte Koordinate des fremden Fensters setzen.</p>
</blockquote>
<p>Probier es mal mit <a href="http://msdn2.microsoft.com/en-us/library/ms648394.aspx" rel="nofollow">SetCursorPos ()</a>.</p>
</blockquote>
<p>und ermittle die koordinaten mit ClientToScreen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359706</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Wed, 05 Sep 2007 18:49:50 GMT</pubDate></item></channel></rss>