<?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[Auf Tastendruck warten??]]></title><description><![CDATA[<p>Hi<br />
ich hab folgenden code:</p>
<pre><code class="language-cpp">bool       setcharinput, //Wen true, dann wird inhalt von WM_CHAR ausgeführt
           inputsuccess; //Wenn true, wurde Taste gedrückt
char       inputvalue;

LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 //...  
  case WM_CHAR: {
                 MessageBox(NULL,&quot;WM_CHAR&quot;,&quot;&quot;,MB_OK);
                 if(setcharinput)
                 {
                  MessageBox(NULL,&quot;WM_CHAR _INPUT&quot;,&quot;&quot;,MB_OK);
                  inputvalue = wParam;
                  setcharinput=false;
                  inputsuccess=true;
                 }
                 else inputsuccess=false;
                }break;
 //...
}

bool input(char* value)
{
 inputsuccess = false;
 setcharinput = true; //Eingabe freigeben

    //Was hier machen??

 *value = inputvalue; //Zeichen einlesen
 return inputsuccess;
}
</code></pre>
<p>Wie kann ich jetzt, nachdem ich die eingabe freigegeben habe, warten, bis eine Taste gedrückt wurde??<br />
Wenn ich da <em>while(setcharinput);</em> Hinmache, ist das Programm nicht mehr zu bedienen (Sanduhr-cursor wird angezeigt)</p>
<p><strong>ps.: Wie kann ich auf die hinteren Zeichen einer Schriftart zugreifen?? (z.B. Bei &quot;Courier New&quot; die Ganzen Linien und ecken, die ich auch in der Konsole zur verfügung habe??)</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/113710/auf-tastendruck-warten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 17:44:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/113710.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Jun 2005 07:09:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 18:46:03 GMT]]></title><description><![CDATA[<p>Hi<br />
ich hab folgenden code:</p>
<pre><code class="language-cpp">bool       setcharinput, //Wen true, dann wird inhalt von WM_CHAR ausgeführt
           inputsuccess; //Wenn true, wurde Taste gedrückt
char       inputvalue;

LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 //...  
  case WM_CHAR: {
                 MessageBox(NULL,&quot;WM_CHAR&quot;,&quot;&quot;,MB_OK);
                 if(setcharinput)
                 {
                  MessageBox(NULL,&quot;WM_CHAR _INPUT&quot;,&quot;&quot;,MB_OK);
                  inputvalue = wParam;
                  setcharinput=false;
                  inputsuccess=true;
                 }
                 else inputsuccess=false;
                }break;
 //...
}

bool input(char* value)
{
 inputsuccess = false;
 setcharinput = true; //Eingabe freigeben

    //Was hier machen??

 *value = inputvalue; //Zeichen einlesen
 return inputsuccess;
}
</code></pre>
<p>Wie kann ich jetzt, nachdem ich die eingabe freigegeben habe, warten, bis eine Taste gedrückt wurde??<br />
Wenn ich da <em>while(setcharinput);</em> Hinmache, ist das Programm nicht mehr zu bedienen (Sanduhr-cursor wird angezeigt)</p>
<p><strong>ps.: Wie kann ich auf die hinteren Zeichen einer Schriftart zugreifen?? (z.B. Bei &quot;Courier New&quot; die Ganzen Linien und ecken, die ich auch in der Konsole zur verfügung habe??)</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/817304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817304</guid><dc:creator><![CDATA[RedEagle]]></dc:creator><pubDate>Sun, 26 Jun 2005 18:46:03 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 20:00:35 GMT]]></title><description><![CDATA[<p>Hmm bin mir nicht ganz sicher</p>
<p>Du müsstest das WM_CHAR nochmal innerhalb der Windowsmessage<br />
WM_KEYDOWN einschachtel oder ersetz doch_mal das WM_CHAR gegen WM_KEYDOWN<br />
WM_KEYDOWN sollte alles was von der Tastatur kommt abfangen.<br />
Wenn das geht kannst du dich weiter vorarbeiten.</p>
<p>Gruss sclearscreen <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/817738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817738</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Jun 2005 20:00:35 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 20:05:12 GMT]]></title><description><![CDATA[<p>Welche Taste gedrueckt worden ist ist im übrigen in eimem der zwei Parameter</p>
<pre><code class="language-cpp">WPARAM wParam
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">LPARAM lParam
</code></pre>
<p>.</p>
<p>enthalten. Nachdem WM_KEYDOWN bzw. WM_CHAR eingetreten ist!<br />
Musst aber mal weiter in der MSDN nachsuchen, hatte lange mehr nichtsmehr am Hut<br />
mit WinAPI!</p>
<p>Grüsse <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/817740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817740</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Jun 2005 20:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 20:32:56 GMT]]></title><description><![CDATA[<p>sorry habe deinen Post flasch verstanden, stelle ich gerade fest! Soory!</p>
<p>Aber jetzt:</p>
<pre><code class="language-cpp">bool input(char* value)
{
 inputsuccess = false;
 setcharinput = true; //Eingabe freigeben

    //Was hier machen??

 *value = inputvalue; //Zeichen einlesen
 return inputsuccess;
}
</code></pre>
<p>Wenn Du bei:</p>
<pre><code class="language-cpp">//Was hier machen??
</code></pre>
<p>Die Tastaur sperren willst nur um auf einen Tastendruck zu warten<br />
verstösst Du gegen den Nachrichtenbehandlungsmechanismus von Windows,<br />
Dann blockierst Du deine gesamte Anwendung, das geht nicht kein Wunder<br />
wenn eine Sanduhr kommt!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
<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="🙂"
    /> Du blockierst Windows damit in folgender Sache</p>
<pre><code class="language-cpp">while (GetMessage (&amp;messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&amp;messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&amp;messages);
    }
</code></pre>
<p>Mit freundlichen Gruessen <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/817749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817749</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Jun 2005 20:32:56 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 20:34:45 GMT]]></title><description><![CDATA[<p>weil deine Anwendung dann eben in deiner selbstgeschriebenen Routine<br />
hängenbleibt <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="🙂"
    /> <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/817750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817750</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Jun 2005 20:34:45 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 20:41:18 GMT]]></title><description><![CDATA[<p>Du sollteswt dir bei eintreffen von WM_KEYDOWN oder wie bei dir bei WM_CHAR,<br />
in einer statischen Variablen merken das jetzt Tastaureigaben gemacht werden<br />
um dann den Parameter</p>
<pre><code class="language-cpp">lParam
</code></pre>
<p>auf fuer dich relevante Tasten prüfen!</p>
<p>Hinweis: Bau wenn es geht keine Schleifen in Hauptnachrichtenbehandlungroutinen<br />
von Fenstern ein! Wenn Du schleifen einbaust dann sei dir genau über deren<br />
Abbruchbedingung im Klaren!!!!</p>
<p><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="🙂"
    /> <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/817752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817752</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Jun 2005 20:41:18 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 21:06:38 GMT]]></title><description><![CDATA[<p>Hier damit kannst die Taste anzeigen die gedrückt wird!</p>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static TCHAR key[2];
    switch (message)                  /* handle the messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;

        case WM_CHAR:
            GetKeyNameText(lParam,key,sizeof(key)/sizeof(TCHAR));
            MessageBox(0,key,&quot;Taste&quot;,0);
            break;

        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}
</code></pre>
<p>habs mal in meine Compiler getestet, ich denke darauf kannste weiter aufbauen!</p>
<p>Mit besten Gruessen! Passe Deine Code entsprechend an wie Du möchtest!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/817771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817771</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Jun 2005 21:06:38 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Tastendruck warten?? on Sun, 26 Jun 2005 21:53:09 GMT]]></title><description><![CDATA[<p>Aber das mit den Schleifen in der Fensterprozedur meine ich immer noch so ernst!<br />
Diesen Ratschlag bitte beherzigen!<br />
Sonst kommt die Sanduhr öfters mal weil Deine Anwendung dann keine Zeit fuer Dich hat! <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="🙂"
    /> <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/817796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/817796</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Jun 2005 21:53:09 GMT</pubDate></item></channel></rss>