<?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[Menü[Gelöst]]]></title><description><![CDATA[<p>Hi all,<br />
ich wollte gerade mal ein Hauptmenü programmieren, bei dem man mit Pfeiltasten zwischen Menüpunkten hin und her schalten kann und wenn man enter drückt soll es das gewählte ausführen...<br />
Ich hab jetzt bei allen 4 Menüpunkten hab ich den gleichen Code, nur die Funktion die bei Enter ausgeführt wird ist anders.Wenn ich das Programm starte dann Funktion der erste Menüpunkt, und dann funktionieren auch die beiden mittleren, nur der letzte nicht und wenn ich erstmal eine pfeiltaste gedrückt habe, dann geht auch der erste nicht mehr...Also ich glaube das liegt irgendwie am erfassen des Tastendrucks mit GetAsyncKeyState...Speicherleiche oder so!<br />
Jetzt meine Frage:</p>
<p>Kann man den Inhalt von GetAsyncKeyState löschen?<br />
Bzw. gibts ne bessere alternative zu GetAsyncKeyState?</p>
<p>Danke schonmal,<br />
Finn</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/244399/menü-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 09:49:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/244399.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Jun 2009 18:48:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 17:32:43 GMT]]></title><description><![CDATA[<p>Hi all,<br />
ich wollte gerade mal ein Hauptmenü programmieren, bei dem man mit Pfeiltasten zwischen Menüpunkten hin und her schalten kann und wenn man enter drückt soll es das gewählte ausführen...<br />
Ich hab jetzt bei allen 4 Menüpunkten hab ich den gleichen Code, nur die Funktion die bei Enter ausgeführt wird ist anders.Wenn ich das Programm starte dann Funktion der erste Menüpunkt, und dann funktionieren auch die beiden mittleren, nur der letzte nicht und wenn ich erstmal eine pfeiltaste gedrückt habe, dann geht auch der erste nicht mehr...Also ich glaube das liegt irgendwie am erfassen des Tastendrucks mit GetAsyncKeyState...Speicherleiche oder so!<br />
Jetzt meine Frage:</p>
<p>Kann man den Inhalt von GetAsyncKeyState löschen?<br />
Bzw. gibts ne bessere alternative zu GetAsyncKeyState?</p>
<p>Danke schonmal,<br />
Finn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734692</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Thu, 02 Jul 2009 17:32:43 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Mon, 29 Jun 2009 19:09:39 GMT]]></title><description><![CDATA[<p>Zeig mal deinen Code oder ein Minimalbsp. der dein Problem zeigt.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734705</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Mon, 29 Jun 2009 19:09:39 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Mon, 29 Jun 2009 20:10:03 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
using namespace std;

int main()
{
    void HML();//Linker MenüPunkt
    void HMM();//Mittlerer...
    void HMR();//Rechter

    void HML()
    {
        while(1)
        {
            system(&quot;cls&quot;);
            cout &lt;&lt; &quot;[Menü1] Menü2  Menü3&quot;;
            if(GetAsyncKeyState(VK_RIGHT))
            {
                HMM();
            }

            else if(GetAsyncKeyState(VK_RETURN))
            {
                cout &lt;&lt; &quot;Menü1&quot; &lt;&lt; endl;
            }
         }
     }

     void HMM()
     {
         system(&quot;cls&quot;)
//...........und so weiter........//
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1734737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734737</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Mon, 29 Jun 2009 20:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Mon, 29 Jun 2009 21:39:20 GMT]]></title><description><![CDATA[<p>Bin kein erfahrener C++-Profi, jedoch frag ich mich.</p>
<p>Darf man eine Konstante (1) als Schleifen-Bedingung geben? Das wäre doch eine Endlosschleife oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734785</guid><dc:creator><![CDATA[Mentras]]></dc:creator><pubDate>Mon, 29 Jun 2009 21:39:20 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Mon, 29 Jun 2009 21:51:17 GMT]]></title><description><![CDATA[<p>da du dich mit GetAsyncKeyState so und so schon an Windows bindest, kannst du dich auch gleich noch an den MSVC binden...</p>
<p>außerdem geht deine Lösung wirklich nicht - und nur weil man fkt in anderen definieren kann, sollte man das nicht unbedingt tun, wenn es keinen Sinn hat ^^</p>
<pre><code class="language-cpp">#include &lt;conio.h&gt;

int main()
{
  int key;
  do
  {
    while (!_kbhit());
    key = getch();
    switch(key)
    {
      case VK_LEFT:
        //...
        break;

      case VK_RIGHT:
        //...
        break;
    };
  } while(key != VK_RETURN);
}
</code></pre>
<p>sollte so in etwa funktionieren ^^<br />
ist natürlich auch nur als skizze gedacht - wenn du nicht mehr weiterkommst, kannst du dich ja wieder melden ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734791</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 29 Jun 2009 21:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Tue, 30 Jun 2009 11:44:39 GMT]]></title><description><![CDATA[<p>Danke! Kannst du den Code noch bissle Kommentieren? <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="🙂"
    /><br />
Und hab grad bisschen damit rumprobiert und hab festgestellt, dass das ja nur geht, wenn ich 2 Menüpunkte hab...ich brauch ja aber 4^^ Weil wenn man beim ersten punkt ist und drück nach rechts, dann gehts zum 2. ... soweit so gut, aber dann fängts ja von vorne an und dann ich jetzt wieder nach rechts drücke, dann gehts ja wieder auf den 2. punkt...den 3. und 4. punkt kann man mit der lösung nicht erreichen!<br />
oder irre ich mich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734971</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Tue, 30 Jun 2009 11:44:39 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Tue, 30 Jun 2009 17:02:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main()
{
  int key;
  int menuePunkt = 0;

  do
  {
    while (!_kbhit()); //Eigngabe Puffer leeren(?)
    key = getch(); //Zeichen auslesen
    switch(key)
    {
      case VK_LEFT:
        if(menuePunkt &gt; 0)
            menuePunkt--;
        break;

      case VK_RIGHT:
        if(menuePunkt &lt; 3)
            menuePunkt++;
        break;
    };
  } while(key != VK_RETURN); //Solange nicht Enter gedrückt

  switch(menuePunkt)
  {
    case 0:
      //Menüpunkt 1 ausgewählt
      break;

    case 1:
      //Menüpunkt 2 ausgewählt
      break;

    //...
  };
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1735172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735172</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Tue, 30 Jun 2009 17:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Tue, 30 Jun 2009 18:40:15 GMT]]></title><description><![CDATA[<p>Naja aber jetzt kann man ja weider nur zwischen 2en hin und her schalten...^^<br />
Ich brauch aber 4 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Deine Lösung ist ja ähnlich mit der vorigen und da gehts auch net</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735195</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Tue, 30 Jun 2009 18:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Tue, 30 Jun 2009 18:49:02 GMT]]></title><description><![CDATA[<p>Du solltest schon Programmieren können...</p>
<pre><code class="language-cpp">...
if(menuePunkt &gt; 0)
menuePunkt--;
...
if(menuePunkt &lt; 3)
menuePunkt++;
...
</code></pre>
<p>0 - 1 - 2 - 3 -&gt; 4 Möglichkeiten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735200</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Tue, 30 Jun 2009 18:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Tue, 30 Jun 2009 20:39:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;conio.h&gt; 

void draw_menue(int menue_id);

int main() 
{ 
  int key; 
  int menuepkt = 0;

  do 
  {
    int tmp_menuepkt = menuepkt;
    while (!_kbhit()); //solange keine taste gedrückt wurde, nichts machen
    key = getch(); //welche taste wurde gedrückt
    switch(key) //... und was heißt das für uns?
    { 
      case VK_LEFT: //nach links
        menuepkt = std::max(0, menuepkt-1); //alternativ auch die sache mit dem if ^^
        break; 

      case VK_RIGHT: 
        menuepkt = std::min(4, menuepkt+1);
        break;
    };

    if(tmp_meuepkt != menuepkt)
    { //draw_menue malt dann halt - da du ein cls hast, könnte es sonst passieren, dass es flackert, wenn du nach links drückst - also hab ich es mal so gemacht, dass es nur neu malt, wenn sich hier was verändert hat
      draw_menue(menuepkt);
    }
  } while(key != VK_RETURN); //solange die gedrückte taste nicht enter war
}

#include &lt;iostream&gt;

void draw_menue(int menue_id)
{
  system(&quot;cls&quot;);
  switch(menue_id)
  {
    case 0:
      std::cout &lt;&lt; &quot;HALLO&quot; &lt;&lt; std::endl;
      break;
    case 1:
      std::cout &lt;&lt; &quot;SCHOENE&quot; &lt;&lt; std::endl;
      break;
    case 2:
      std::cout &lt;&lt; &quot;TOLLE&quot; &lt;&lt; std::endl;
      break;
    case 3:
      std::cout &lt;&lt; &quot;WELT!&quot; &lt;&lt; std::endl;
      break;
  }
}
</code></pre>
<p>das ganze dann noch ein wenig in klassen / fkt auslagern und es könnte so gar fast hübsch aussehen ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735265</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 30 Jun 2009 20:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Wed, 01 Jul 2009 07:01:10 GMT]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>also laut den 2 Links hier sollte eure Loesung nicht funktioniern (nicht selbst getestet):<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39324.html" rel="nofollow">SideWinder</a><br />
<a href="http://msdn.microsoft.com/en-us/library/078sfkak(VS.80).aspx" rel="nofollow">MSDN</a></p>
<p>Ich habs au so gemacht wie es da beschrieben wird:</p>
<pre><code class="language-cpp">while(bEnd == false)
     {
         iInput = getch();
         switch(iInput)
         {
             case SPEZIAL_KEY: /* also 0 oder 0xE0 */
             {
                iInput = getch();
                switch(iInput)
                {
                    case 80: /* arrow key down */
                      ......
                }
             }
             default:
              /* normale einfabe behandeln oder ignorieren */
         }
     }
</code></pre>
<p>Und hier noch <a href="http://www.datasource.de/programmierung/tab01_tastaturcodes.html" rel="nofollow">Tastaturcodes</a><br />
Den rest sollteste selber schreiben koenne <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>
<p>Peace &amp; Blessed Love C0de4Fun</p>
<p>PS:</p>
<p>unskilled schrieb:</p>
<blockquote>
<pre><code class="language-cpp">/*...*/
  system(&quot;cls&quot;);
/*...*/
</code></pre>
<p>....es könnte so gar fast hübsch aussehen ^^</p>
<p>bb</p>
</blockquote>
<p>Bin ich ned so ganz der Meinung, wegen dem system(&quot;cls&quot;). Wie schon erwaehnt, wenn du dich schon an Windows bindes benutz au die Funktionen davon wie z.B. <a href="http://msdn.microsoft.com/en-us/library/ms682663(VS.85).aspx" rel="nofollow">FillConsoleOutputCharacter</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735343</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Wed, 01 Jul 2009 07:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Wed, 01 Jul 2009 10:37:40 GMT]]></title><description><![CDATA[<p>stimmt - hatte ich auch irgendwann schon mal gehört - nur wieder vergessen, weil nie gebraucht ^^</p>
<blockquote>
<p>Bin ich ned so ganz der Meinung, wegen dem system(&quot;cls&quot;). Wie schon erwaehnt, wenn du dich schon an Windows bindes benutz au die Funktionen davon wie z.B. FillConsoleOutputCharacter</p>
</blockquote>
<p>Er hatte es nun mal zuvor selbst verwendet(das cls) und ich hab ja jedes ma dazu gesagt, dass das, was ich geschrieben habe, nicht die lösung sondern lediglich nen schritt in die richtung sein soll...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735482</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 01 Jul 2009 10:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 10:13:14 GMT]]></title><description><![CDATA[<p>Danke erstmal an alle die sich so viele Gedanken für mich gemacht haben!<br />
Ich habe mich erstmal unskilled's Version angenommen.Weil das eins zu eins beim Compilieren haufenweise fehler gab und ich das ja auch nicht eins zu eins verwenden will(wollts nur mal kurz testn) hab ichs nochmal so ähnlich selbst versucht:</p>
<pre><code class="language-cpp">int key;
int menue_id_alt = 1;
int menue_id = 1;
void draw_menue(int menue_id);
void HM()
{
    do
    {
        int key;
        int menue_id_alt = 1;
        while(!_kbhit());
        key = getch();

        switch(key)
        {
            case VK_RIGHT:
            if(menue_id &gt;= 4)
            {
                menue_id++;
                break;
            }

            case VK_LEFT:
            if(menue_id &gt; 0)
            {
                menue_id--;
            }
         }
         if(menue_id != menue_id_alt)
         {
             menue_id_alt = menue_id;
             draw_menue(menue_id);
         }
    }    
    while(key != VK_RETURN);
}
void draw_menue(int menue_id)
{
    system(&quot;color f9&quot;);

    switch(menue_id)
    {
        system(&quot;cls&quot;);
        case 1:
        cout &lt;&lt; &quot;[New] Load  Readme  Exit&quot;;
        HM();
        break;

        case 2:
        cout &lt;&lt; &quot; New [Load] Readme  Exit&quot;;
        HM();
        break;

        case 3:
        cout &lt;&lt; &quot; New  Load [Readme]  Exit&quot;;
        HM();
        break;

        case 4:
        cout &lt;&lt; &quot; New  Load  Readme [Exit]&quot;;
        HM();
        break;
    }
}
</code></pre>
<p>Aber wenn ich das ausführe(es lässt sich ohne probleme compilen) dann is nur schwarzer Bildschirm und das Eingabestrichle blinkt!<br />
(Zur Info: void HM() deshalb, weil ich funktions.cpp in meiner main.cpp included hab für funktionsauslagerung und so^^)</p>
<p>Danke schon an alle die geholfen haben!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735915</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Thu, 02 Jul 2009 10:13:14 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 15:58:59 GMT]]></title><description><![CDATA[<p>1. Du solltest beim programmieren immer bei 0 anfangen zu zählen.(Ist hier jetzt nicht so wichtig)</p>
<ol start="2">
<li></li>
</ol>
<pre><code class="language-cpp">case VK_RIGHT:
            if(menue_id &gt;= 4) //sollte &quot;&lt; 4&quot; heißen
            {
                menue_id++;
                break;
            }

            case VK_LEFT:
            if(menue_id &gt; 0) //sollte &quot;&gt; 1&quot; heißen, da du ja bei 1 anfängst zu zählen
            {
                menue_id--;
            }
</code></pre>
<p>3. Wieso hast du zwei mal &quot;menue_id_alt&quot; &amp; &quot;key&quot;?</p>
<p>4. Du musst &quot;menue_id_alt&quot; und &quot;menue_id&quot; am Anfang unterschiedlich setzen, damit er das Menü zeichnet.</p>
<p>5. Wieso rufst du in draw_menue() HM() auf?</p>
<p>Grüße SWW13</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736156</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Thu, 02 Jul 2009 15:58:59 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 16:18:19 GMT]]></title><description><![CDATA[<p>SWW13 schrieb:</p>
<blockquote>
<p>3. Wieso hast du zwei mal &quot;menue_id_alt&quot; &amp; &quot;key&quot;?</p>
<p>4. Du musst &quot;menue_id_alt&quot; und &quot;menue_id&quot; am Anfang unterschiedlich setzen, damit er das Menü zeichnet.</p>
<p>5. Wieso rufst du in draw_menue() HM() auf?</p>
</blockquote>
<p>3. aus Versehen ^^</p>
<p><a href="http://4.Jo" rel="nofollow">4.Jo</a> stimmt...leichtsinnsfehler <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>
<p>5.Weil sonst wird doch das Programm nach einem Durchlauf beendet oder?</p>
<p>Achja und &quot;&gt;0&quot; stimm glaub ich nicht, weil sonst würde es ja auch den menüpunkt um eins verringern, wenn der menüpunkt 1 angewählt ist und einen menüpunkt 0 gibt es ja nicht!</p>
<p>Danke <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>PS: Hab diese Änderungen vorgenommen, aber funktioniert immer noch nicht <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="😞"
    /> weiß einer worans liegt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736159</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Thu, 02 Jul 2009 16:18:19 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 16:20:50 GMT]]></title><description><![CDATA[<p>Finn schrieb:</p>
<blockquote>
<p>...<br />
5.Weil sonst wird doch das Programm nach einem Durchlauf beendet oder?<br />
...<br />
PS: Hab diese Änderungen vorgenommen, aber funktioniert immer noch nicht <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="😞"
    /> weiß einer worans liegt?</p>
</blockquote>
<p>Nein, du hast Ja in HM eine Schleife do{...}while(Bedingung).<br />
Mir fällt jetzt spontan nichts mehr auf, geh doch mal mit dem Debugger drüber.</p>
<p>Grüße SWW13</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736168</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Thu, 02 Jul 2009 16:20:50 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 16:26:12 GMT]]></title><description><![CDATA[<p>fehler waren drin, weil du was vergessen hast zu includen ^^</p>
<p>dann gabs ja noch das problem mit _getch - hab ich aber bei google direkt was von volkard gefunden : &gt;<br />
keine ahnung, ob man sich das enum irgendwie sparen kann und aus den bestehenden windows-makros(VK_LEFT/VK_RIGHT/...) die werte für die tasten bekommt</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;

#include &lt;conio.h&gt;
#define NOMINMAX
#include &lt;windows.h&gt;
#undef NOMINMAX

void draw_menue(int menue_id); 

namespace keys
{
	enum T
	{
		LEFT = 587,
		RIGHT = 589
	};

	int getPressedKey() //http://www.c-plusplus.net/forum/viewtopic-var-t-is-231918.html
	{ 
	   int result=_getch(); 
	   if(result==0) 
		  result=256+_getch(); 
	   else if(result==224) 
		  result=512+_getch(); 
	   return result; 
	}

}

int main() 
{ 
  int key; 
  int menuepkt = 0; 

  draw_menue(menuepkt);
  do 
  { 
    int tmp_menuepkt = menuepkt; 
    while (!_kbhit()); //solange keine taste gedrückt wurde, nichts machen 
	key = keys::getPressedKey(); //welche taste wurde gedrückt 

	switch(key) //... und was heißt das für uns? 
    {
	case keys::LEFT: //nach links 
        menuepkt = std::max(0, menuepkt-1); //alternativ auch die sache mit dem if ^^ 
        break; 

	case keys::RIGHT: 
        menuepkt = std::min(3, menuepkt+1); 
        break; 
    }; 

    if(tmp_menuepkt != menuepkt) 
    { //draw_menue malt dann halt - da du ein cls hast, könnte es sonst passieren, dass es flackert, wenn du nach links drückst - also hab ich es mal so gemacht, dass es nur neu malt, wenn sich hier was verändert hat 
      draw_menue(menuepkt); 
    } 
  } while(key != VK_RETURN); //solange die gedrückte taste nicht enter war 
} 

void draw_menue(int menue_id) 
{ 
  system(&quot;cls&quot;); 
  switch(menue_id) 
  { 
    case 0: 
      std::cout &lt;&lt; &quot;HALLO&quot; &lt;&lt; std::endl; 
      break; 
    case 1: 
      std::cout &lt;&lt; &quot;SCHOENE&quot; &lt;&lt; std::endl; 
      break; 
    case 2: 
      std::cout &lt;&lt; &quot;TOLLE&quot; &lt;&lt; std::endl; 
      break; 
    case 3: 
      std::cout &lt;&lt; &quot;WELT!&quot; &lt;&lt; std::endl; 
      break; 
  } 
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736169</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 02 Jul 2009 16:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 16:34:34 GMT]]></title><description><![CDATA[<p>@ unskilled: Ich hab included... -.- Und einfach Code ausm Internet zu nehmen und zu posten hilft nicht wirklich weiter!</p>
<p>Code Update:</p>
<pre><code class="language-cpp">int key;
int menue_id_alt;
int menue_id;
void draw_menue(int menue_id);
void HM()
{
  menue_id = 1;
  menue_id_alt = 0;
  do
  {
    while(!_kbhit());
    key = getch();

    switch(key)
    {
      case VK_RIGHT:
      if(menue_id &lt; 4)
      {
        menue_id++;
        break;
      }

      case VK_LEFT:
      if(menue_id &gt; 0)
      {
        menue_id--;
      }
      break;
    }
    if(menue_id != menue_id_alt)
    {
      menue_id_alt = menue_id;
      draw_menue(menue_id);
    }
  }
  while(key != VK_RETURN);
}
void draw_menue(int menue_id)
{
  system(&quot;color f9&quot;);

  switch(menue_id)
  {
    system(&quot;cls&quot;);
    case 1:
    menue_id_alt = 1;
    cout &lt;&lt; &quot;[New] Load  Readme  Exit&quot;;
    break;

    case 2:
    menue_id_alt = 2;
    cout &lt;&lt; &quot; New [Load] Readme  Exit&quot;;
    break;

    case 3:
    menue_id_alt = 3;
    cout &lt;&lt; &quot; New  Load [Readme]  Exit&quot;;
    break;

    case 4:
    menue_id_alt = 4;
    cout &lt;&lt; &quot; New  Load  Readme [Exit]&quot;;
    break;
  }
}
</code></pre>
<p>Erst is schwarzer bildschirm und wenn ich nach rechts drück, dann zeigts zumindest schonmal &quot;[New] Load Readme Exit&quot; an! Aber dann geht nix mehr... <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1736174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736174</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Thu, 02 Jul 2009 16:34:34 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 16:45:43 GMT]]></title><description><![CDATA[<p>Du sollst ihn ja auch nicht nehmen - aber gucken, wie es geht...</p>
<p>bb</p>
<p>PS: Der Fehler liegt daran, dass _getch() eben nicht das zurückgibt, was du erwartest...<br />
Unabhängig davon sind aber deine beiden switchs komisch - ich würd so gar fast sagen, eins ist falsch und das andere ist nur buggy <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=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736183</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 02 Jul 2009 16:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 16:48:52 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21629">@Finn</a> liesst du dir die Beitraege ueberhaupt durch?</p>
<p>Wie schon in meinem vorherigen Post beschrieben liegt das daran das du z.B. _getch 2mal aufrufen musst wenn ein spezial key(wie z.B. arrow key) gedrueckt wurde.<br />
Hab jetzt nochmal deine Loesung probiert und mit dem debugger verfolgt.</p>
<p>1. aufruf von _getch() liefert 224 zurueck<br />
2. aufruf von _getch() liefert 77 zurueck</p>
<p>Alles genau so wie es in den Links von mir beschriebn ist.<br />
IDE VC++2k8</p>
<p>Da machst echt keine Spass anderen zu helfen, wenn die einfach die Posts von einem ueberlesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Peace &amp; Blessed Love C0de4Fun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736184</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Thu, 02 Jul 2009 16:48:52 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 16:52:49 GMT]]></title><description><![CDATA[<p>Öhm die 2 Links hab ich erst jetzt gelesen...aber wie die müssen 2 mal aufgerufen werden? Kannstes erklären? Auf der msdn Seite raff ichs irgendwie net...bzw. kannste zeigen was ich jetzt noch einbauen muss in den Code?</p>
<p>@ unskilled: Wieso sind die switchs falsch und buggy? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736188</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Thu, 02 Jul 2009 16:52:49 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 17:00:49 GMT]]></title><description><![CDATA[<p>Finn schrieb:</p>
<blockquote>
<p>Öhm die 2 Links hab ich erst jetzt gelesen...aber wie die müssen 2 mal aufgerufen werden? Kannstes erklären? Auf der msdn Seite raff ichs irgendwie net...bzw. kannste zeigen was ich jetzt noch einbauen muss in den Code?</p>
</blockquote>
<p>Haste dir des au mal durchgelesen oder wenigstes meinen ersten Post? Wennste das ned verstehtst dann kann ich dir leider au ned helfen.<br />
Desweiteren hab ich dir ein Code Stueck gepostet wie ich es gemacht hab.<br />
Tut mir ja leid aber ich glaub du sollst lieber was anderes machen und mit dem Programmieren fortfahren wenn du aelter bist.<br />
Sorry my humble opinion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736193</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Thu, 02 Jul 2009 17:00:49 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 17:04:29 GMT]]></title><description><![CDATA[<p>C0de4Fun schrieb:</p>
<blockquote>
<p>...<br />
Da machst echt keine Spass anderen zu helfen, wenn die einfach die Posts von einem ueberlesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
...</p>
</blockquote>
<p>Unskilled hat die Lösung doch schon gepostet ... mit Link</p>
<pre><code class="language-cpp">int getPressedKey() //http://www.c-plusplus.net/forum/viewtopic-var-t-is-231918.html
    {
       int result=_getch();
       if(result==0)
          result=256+_getch();
       else if(result==224)
          result=512+_getch();
       return result;
    }
</code></pre>
<p>Weil ich es jetzt eh schon zum testen eingebaut hab, hier der Code:<br />
Aber les in Zukunft gefälligst die Antworten, sie dienen zur Lösung deiner Probleme.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;

#include &lt;conio.h&gt;
#include &lt;windows.h&gt;

using namespace std;

namespace keys
{
    enum T
    {
        LEFT = 587,
        RIGHT = 589
    };

    int getPressedKey() //http://www.c-plusplus.net/forum/viewtopic-var-t-is-231918.html
    {
       int result=_getch();
       if(result==0)
          result=256+_getch();
       else if(result==224)
          result=512+_getch();
       return result;
    }

} 

int key;
int menue_id_alt;
int menue_id;

void draw_menue(int menue_id);
void HM()
{
	menue_id = 1;
	menue_id_alt = 0;

	//Menü am Anfang zeichnen
	draw_menue(menue_id);
	do
	{
		while(!_kbhit());
		key = keys::getPressedKey();

		switch(key)
		{
		case keys::RIGHT:
			if(menue_id &lt; 4)
			{
				menue_id++;
			}
			break;

		case keys::LEFT:
			if(menue_id &gt; 1)
			{
				menue_id--;
			}
			break;
		}

		if(menue_id != menue_id_alt)
		{
			menue_id_alt = menue_id;
			draw_menue(menue_id);
		}
	}
	while(key != VK_RETURN);
}
void draw_menue(int menue_id)
{
	system(&quot;color f9&quot;);

	switch(menue_id)
	{
		system(&quot;cls&quot;);

		case 1:
		cout &lt;&lt; &quot;[New] Load  Readme  Exit&quot; &lt;&lt; endl;
		break;

		case 2:
		cout &lt;&lt; &quot; New [Load] Readme  Exit&quot; &lt;&lt; endl;
		break;

		case 3:
		cout &lt;&lt; &quot; New  Load [Readme]  Exit&quot; &lt;&lt; endl;
		break;

		case 4:
		cout &lt;&lt; &quot; New  Load  Readme [Exit]&quot; &lt;&lt; endl;
		break;
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1736194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736194</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Thu, 02 Jul 2009 17:04:29 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 17:16:56 GMT]]></title><description><![CDATA[<p>Also jetzt mal nicht zum Thread:<br />
WARUM werden eigentlich alle unter 20 des öfteren beschimpft, zu jung zu sein zum programmieren??? Ich meine, ich verstehs ja, wenn man zu nem 10 jährigen sagt, dass er lieber noch ein paar Jahre warten soll, aber was spricht denn bitte dagegen, dass einer mit 14 oder 15 programmieren lernt?! Vorallem da man in dem Alter ja noch ein viel höheres Lernpotenzial hat als einer der meinetwegen 35 ist!<br />
Also wenn dann solche Kommentare kommen, da reg ich mich echt auf...<br />
Weil ich deinen Thread da am Anfang net so ernst genommen hab, weil ich da noch nen anderen Lösungsversuch gemacht hab??<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Naja trotzdem an alle..Danke für die Bemühungen! Danke...funktioniert<br />
Und ja trotzdem: Sry, dass ich deinen Beitrag net gelesn hab <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1736197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736197</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Thu, 02 Jul 2009 17:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 18:37:34 GMT]]></title><description><![CDATA[<p>SWW13 schrieb:</p>
<blockquote>
<p>C0de4Fun schrieb:</p>
<blockquote>
<p>...<br />
Da machst echt keine Spass anderen zu helfen, wenn die einfach die Posts von einem ueberlesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
...</p>
</blockquote>
<p>Unskilled hat die Lösung doch schon gepostet ... mit Link</p>
</blockquote>
<p>Dir is aber schon bewusst das ich genau den gleichen Ansatz 5 6 Posts fruehr beschrieben hab ( auch mit Links )!?</p>
<p>Finn schrieb:</p>
<blockquote>
<p>Naja trotzdem an alle..Danke für die Bemühungen! Danke...funktioniert<br />
Und ja trotzdem: Sry, dass ich deinen Beitrag net gelesn hab <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>
</blockquote>
<p>Joa klaro kein Problem dafuer gibts ja das hier. Aber wie gesagt wenn einfach Post ueberlesen werden find ichs einfach schade ;).</p>
<p>Und jetzt haet ich noch 2 Fragen zu Unskilled bzw Volkard Loesung:<br />
1. Was bringt das _kbhit() in ner while Schleife ohne Rumpf? Is des nur verschwendet Prozessor Leistung? Klaro wennste zwischen drin was zeichnen willst brauchste die abfrage,<br />
2. Was soll das +256 bei erster _getch call == 0 oder +512 bei erster _getch call == 0xe0.</p>
<p>Peace &amp; Blessed Love C0de4Fun</p>
<p>€ noch schnell ein Nachtrag zu Frage 1: bei mir sind zwischen 10% und 17% des Prozessors <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/1736240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736240</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Thu, 02 Jul 2009 18:37:34 GMT</pubDate></item><item><title><![CDATA[Reply to Menü[Gelöst] on Thu, 02 Jul 2009 18:34:08 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21137">@C0de4Fun</a>: Sorry, ich dachte der erste Beitrag dazu war auch schon von unskilled.</p>
<p>Und zu 1.:<br />
Wie unskilled schon kommentiert hat:</p>
<pre><code class="language-cpp">while (!_kbhit()); //solange keine taste gedrückt wurde, nichts machen
</code></pre>
<p>Damit mit nicht jedes mal die ganze Schleife durchlaufen wird, wenn eh nichts gedrückt wurde.</p>
<p>Der 2. Frage schließ ich mich mal an, ich versteh den Sinn auch nicht ganz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736243</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Thu, 02 Jul 2009 18:34:08 GMT</pubDate></item></channel></rss>