<?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[Großbuchstaben]]></title><description><![CDATA[<p>Morgen!</p>
<p>Will mir ne Klasse für OGL schreiben, die Eingabefelder ermöglicht. Natürlich sollen auch Großbuchstaben drin sein, aber wie krieg ich das hin?!</p>
<p>Momentan sieht das Ganze so aus:</p>
<p>Ich hol mir die WIndows- Message UINT uMsg und die Parameter dafür WPARAM wParam in meine Klasse, um sie da zu bearbeiten. Die kleinen Buchstaben gehen noch super, weil easy:</p>
<pre><code class="language-cpp">if(uMsg == WM_KEYDOWN)    // Damit bei längerem Tastendruck nicht mehrere Buchstaben erscheinen
   {
   switch(wParam)
   {
   case 'A': {strcat(string , &quot;a&quot;);break;}
   case 'B': {strcat(string , &quot;b&quot;);break;}
   // ...
   }
   }
</code></pre>
<p>Auch Space und das Abfragen der Backspace- Taste lassen sich wohl so realisieren ... . Da aber jedesmal, wenn ich eine neue Taste drücke, die Windows- Message, sowie der dazugehörige Parameter überschrieben werden (ist das so?), krieg ich ja nie raus, ob vor dem Drücken eines Buchstabens die Shift- Taste runtergedrückt wurde, oder nicht. Ich kann ja auch nicht abfragen &quot;Wenn Shift- Tast und Buchstabe gedrückt&quot;, weil beim Drücken des Buchstabens ja die Shift- Nachricht sofort überschrieben wird .... (oder?)</p>
<p>Hat da Jemand Ideen? <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/topic/96194/großbuchstaben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 05:22:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/96194.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Dec 2004 15:13:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Großbuchstaben on Wed, 29 Dec 2004 15:13:32 GMT]]></title><description><![CDATA[<p>Morgen!</p>
<p>Will mir ne Klasse für OGL schreiben, die Eingabefelder ermöglicht. Natürlich sollen auch Großbuchstaben drin sein, aber wie krieg ich das hin?!</p>
<p>Momentan sieht das Ganze so aus:</p>
<p>Ich hol mir die WIndows- Message UINT uMsg und die Parameter dafür WPARAM wParam in meine Klasse, um sie da zu bearbeiten. Die kleinen Buchstaben gehen noch super, weil easy:</p>
<pre><code class="language-cpp">if(uMsg == WM_KEYDOWN)    // Damit bei längerem Tastendruck nicht mehrere Buchstaben erscheinen
   {
   switch(wParam)
   {
   case 'A': {strcat(string , &quot;a&quot;);break;}
   case 'B': {strcat(string , &quot;b&quot;);break;}
   // ...
   }
   }
</code></pre>
<p>Auch Space und das Abfragen der Backspace- Taste lassen sich wohl so realisieren ... . Da aber jedesmal, wenn ich eine neue Taste drücke, die Windows- Message, sowie der dazugehörige Parameter überschrieben werden (ist das so?), krieg ich ja nie raus, ob vor dem Drücken eines Buchstabens die Shift- Taste runtergedrückt wurde, oder nicht. Ich kann ja auch nicht abfragen &quot;Wenn Shift- Tast und Buchstabe gedrückt&quot;, weil beim Drücken des Buchstabens ja die Shift- Nachricht sofort überschrieben wird .... (oder?)</p>
<p>Hat da Jemand Ideen? <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/682707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682707</guid><dc:creator><![CDATA[SirNoname]]></dc:creator><pubDate>Wed, 29 Dec 2004 15:13:32 GMT</pubDate></item><item><title><![CDATA[Reply to Großbuchstaben on Wed, 29 Dec 2004 15:43:47 GMT]]></title><description><![CDATA[<p>WM_CHAR?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682730</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 29 Dec 2004 15:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to Großbuchstaben on Wed, 29 Dec 2004 15:59:06 GMT]]></title><description><![CDATA[<p>Hat sich erledigt ^^</p>
<p>Hab einfach ne BOOL- Variable angelegt, die auf TRUE steht, wenn die Taste gedrückt wurde, und auf FALSE, wenn sie wieder losgelassen ist. ... Hmm ... ich poste einfach mal, wen`s interessiert *g*</p>
<pre><code class="language-cpp">switch (uMsg)									// Check For Windows Messages
	{
	case WM_KEYDOWN:							// Is A Key Being Held Down?
		{
      keys[wParam] = TRUE;					// If So, Mark It As TRUE
		}

		case WM_KEYUP:								// Has A Key Been Released?
		{
      keys[wParam] = FALSE;					// If So, Mark It As FALSE
		}
		break;
		};

   /*  DIE KLEINEN BUCHSTABEN */
	 /////////////////////////////

   if((uMsg == WM_KEYDOWN) &amp;&amp; (shifttaste == FALSE))    // Damit bei längerem Tastendruck nicht mehrere Buchstaben erscheinen
   {
   switch(wParam)
   {
   case 'A': {strcat(string , &quot;a&quot;);break;}
   case 'B': {strcat(string , &quot;b&quot;);break;}
   case 'C': {strcat(string , &quot;c&quot;);break;}
   case 'D': {strcat(string , &quot;d&quot;);break;}
   case 'E': {strcat(string , &quot;e&quot;);break;}
   case 'F': {strcat(string , &quot;f&quot;);break;}
   case 'G': {strcat(string , &quot;g&quot;);break;}
   case 'H': {strcat(string , &quot;h&quot;);break;}
   case 'I': {strcat(string , &quot;i&quot;);break;}
   case 'J': {strcat(string , &quot;j&quot;);break;}
   case 'K': {strcat(string , &quot;k&quot;);break;}
   case 'L': {strcat(string , &quot;l&quot;);break;}
   case 'M': {strcat(string , &quot;m&quot;);break;}
   case 'N': {strcat(string , &quot;n&quot;);break;}
   case 'O': {strcat(string , &quot;o&quot;);break;}
   case 'P': {strcat(string , &quot;p&quot;);break;}
   case 'Q': {strcat(string , &quot;q&quot;);break;}
   case 'R': {strcat(string , &quot;r&quot;);break;}
   case 'S': {strcat(string , &quot;s&quot;);break;}
   case 'T': {strcat(string , &quot;t&quot;);break;}
   case 'U': {strcat(string , &quot;u&quot;);break;}
   case 'V': {strcat(string , &quot;v&quot;);break;}
   case 'W': {strcat(string , &quot;w&quot;);break;}
   case 'X': {strcat(string , &quot;x&quot;);break;}
   case 'Y': {strcat(string , &quot;y&quot;);break;}
   case 'Z': {strcat(string , &quot;z&quot;);break;}
   }
   }

   /*  LÖSCHEN */
	 //////////////

   if ((uMsg == WM_KEYDOWN) &amp;&amp; (wParam == VK_BACK)) 
   {
     string[strlen(string)-1]='\0';
   }

   /*  SPACE */
	 ////////////

	 if ((uMsg == WM_KEYDOWN) &amp;&amp; (wParam == VK_SPACE))
	 {
     strcat(string, &quot; &quot;);
   }

   /*  DIE GROßEN BUCHSTABEN */
	 ////////////////////////////

	 if ((uMsg == WM_KEYDOWN) &amp;&amp; (wParam == VK_SHIFT)) shifttaste = TRUE;
   if ((uMsg == WM_KEYUP) &amp;&amp; (wParam == VK_SHIFT)) shifttaste = FALSE;

   if ((uMsg == WM_KEYDOWN) &amp;&amp; (shifttaste == TRUE))    // Damit bei längerem Tastendruck nicht mehrere Buchstaben erscheinen
   {
   switch(wParam)
   {
   case 'A': {strcat(string , &quot;A&quot;);break;}
   case 'B': {strcat(string , &quot;B&quot;);break;}
   case 'C': {strcat(string , &quot;C&quot;);break;}
   case 'D': {strcat(string , &quot;D&quot;);break;}
   case 'E': {strcat(string , &quot;E&quot;);break;}
   case 'F': {strcat(string , &quot;F&quot;);break;}
   case 'G': {strcat(string , &quot;G&quot;);break;}
   case 'H': {strcat(string , &quot;H&quot;);break;}
   case 'I': {strcat(string , &quot;I&quot;);break;}
   case 'J': {strcat(string , &quot;J&quot;);break;}
   case 'K': {strcat(string , &quot;K&quot;);break;}
   case 'L': {strcat(string , &quot;L&quot;);break;}
   case 'M': {strcat(string , &quot;M&quot;);break;}
   case 'N': {strcat(string , &quot;N&quot;);break;}
   case 'O': {strcat(string , &quot;O&quot;);break;}
   case 'P': {strcat(string , &quot;P&quot;);break;}
   case 'Q': {strcat(string , &quot;Q&quot;);break;}
   case 'R': {strcat(string , &quot;R&quot;);break;}
   case 'S': {strcat(string , &quot;S&quot;);break;}
   case 'T': {strcat(string , &quot;T&quot;);break;}
   case 'U': {strcat(string , &quot;U&quot;);break;}
   case 'V': {strcat(string , &quot;V&quot;);break;}
   case 'W': {strcat(string , &quot;W&quot;);break;}
   case 'X': {strcat(string , &quot;X&quot;);break;}
   case 'Y': {strcat(string , &quot;Y&quot;);break;}
   case 'Z': {strcat(string , &quot;Z&quot;);break;}
   }
   }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/682739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682739</guid><dc:creator><![CDATA[SirNoname]]></dc:creator><pubDate>Wed, 29 Dec 2004 15:59:06 GMT</pubDate></item><item><title><![CDATA[Reply to Großbuchstaben on Wed, 29 Dec 2004 16:37:45 GMT]]></title><description><![CDATA[<p>Mit std::string könntest du dir diese riesigen switch-Monster elegant sparen. Und da du eh einen C++-Compiler benutzt... <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>
]]></description><link>https://www.c-plusplus.net/forum/post/682760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682760</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Wed, 29 Dec 2004 16:37:45 GMT</pubDate></item><item><title><![CDATA[Reply to Großbuchstaben on Thu, 30 Dec 2004 16:16:58 GMT]]></title><description><![CDATA[<p>Hmm .... kann sein .... Da kommt jetzt aber wieder mein absolutes Defizit in Sachen C++ Grundlagen und Allgemeinwissen zum Vorschein ... Ich hätt jetzt gesagt das is die Funktion &quot;string&quot; in der Klasse &quot;std&quot; ... hmm .... kann das mal Jemand für nen Dummen kurz erläutern / Hilfe zum weiteren Lernen geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/683275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/683275</guid><dc:creator><![CDATA[SirNoname_]]></dc:creator><pubDate>Thu, 30 Dec 2004 16:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Großbuchstaben on Thu, 30 Dec 2004 16:27:23 GMT]]></title><description><![CDATA[<p>nichts ganz <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="😉"
    /><br />
string ist ein typedef auf ne c++ templateklasse im namesbereich std.</p>
<p><a href="http://tutorial.schornboeck.net/inhalt.htm" rel="nofollow">http://tutorial.schornboeck.net/inhalt.htm</a><br />
<a href="http://www.cpp-tutor.de/cpp/toc.htm" rel="nofollow">http://www.cpp-tutor.de/cpp/toc.htm</a><br />
<a href="http://cplus.kompf.de/artikel.html" rel="nofollow">http://cplus.kompf.de/artikel.html</a></p>
<p>falls du noch andere tutorials suchst oben rechts ist ein link.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/683286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/683286</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 30 Dec 2004 16:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Großbuchstaben on Sun, 02 Jan 2005 08:54:21 GMT]]></title><description><![CDATA[<p>Also ich hab mir jetzt mal n paar Tutorials angesehen, Danke für die links. Aber irgenwie seh ich noch nicht, wie mir das bei meinem code helfen soll.<br />
Ich hab jetzt mal</p>
<pre><code class="language-cpp">char buchstabe;
buchstabe = wParam.substr(1,1);
</code></pre>
<p>ausprobiert, aber da wParam ja kein String ist, funktioniert das auch nicht ... könntest du mir mal nen Verbesserungs- Code oder nen neuen Anstoß geben, was genau du meintest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/684603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/684603</guid><dc:creator><![CDATA[SirNoname]]></dc:creator><pubDate>Sun, 02 Jan 2005 08:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to Großbuchstaben on Sun, 02 Jan 2005 09:47:17 GMT]]></title><description><![CDATA[<p>Z.B. so:</p>
<pre><code class="language-cpp">std::string s;
if(wParam &gt;= 'A' &amp;&amp; wParam &lt;= 'Z')
{
    if(shifttaste)
        s += static_cast&lt;char&gt;(wParam);
    else
        s += tolower(static_cast&lt;char&gt;(wParam));
}
else if(wParam == VK_SPACE)
    s += ' ';
else if(wParam == VK_BACK &amp;&amp; s.length() &gt; 0)
    s = s.substr(0, s.length() - 1);
</code></pre>
<p>btw, bei deinem Code ist die Behandlung von VK_BACK nicht korrekt, wenn der String kein Zeichen mehr enthält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/684619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/684619</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Sun, 02 Jan 2005 09:47:17 GMT</pubDate></item></channel></rss>