<?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[Problem mit einem Trackbar]]></title><description><![CDATA[<p>Habe einen Lautstärkeregler mit einem TrackBar programmiert, der Wert sollte in einen String eingebunden werden aber das macht komische Sachen: Der Wert geht von 70-79 und springt dann sofort auf 710 und geht dann von 710 - 7100 oder das Selbe mit 50-59, 510 - 5100! Der DrackBar geht von 0-100 was auch funktioniert wenn ich den Wert direkt, ohne StrNCat mit TextOut ausgebe. Nur nach der StrNCat (oder einer anderen eigenen Routine genau gleich) passiert das oben beschriebene. Auffällig noch bei den Deklarationen dass ich einmal db anstatt dd verwenden musste aber der Wert vom TrackBar scheint OK wie bei der direkten Ausgabe ersichtlich. Hier der Codeausschnitt, zuerst Deklarationen:</p>
<pre><code class="language-asm">tbnull db 0         ; mit dd= unveraenderliches TrackBar!!
tbhundert dd 100
tbsiebzig dd 70
svol db 255 dup (?),0
----------------------------------
; Trackber erstellen:

invoke CreateWindowEx,NULL,addr TrackBarClassName, NULL, WS_CHILD or WS_VISIBLE,220,60,70,20,hWin, TrackBarID, hInstance, NULL
mov hwndTrack, eax
invoke SendMessage, hwndTrack, TBM_SETRANGE, tbnull, tbhundert
invoke SendMessage, hwndTrack, TBM_SETPOS, TRUE, tbsiebzig

;-------------------------------- Fensterprozedur:

.elseif uMsg==WM_HSCROLL                      

mov setvol[28],0

invoke SendMessage, hwndTrack, TBM_GETPOS, TRUE, NULL

invoke wsprintf, addr svol, addr sformat, eax

invoke StrNCat, addr setvol, addr svol, 255
invoke GetDC, hWin
            mov devicecontext, eax
            invoke TextOut,eax, 10, 40, addr setvol, 50

invoke mciSendString, addr setvol, 0, 0, 0
</code></pre>
<p>funktionsfähig ist einfach</p>
<pre><code class="language-asm">invoke SendMessage, hwndTrack, TBM_GETPOS, TRUE, NULL
invoke wsprintf, addr svol, addr sformat, eax
invoke GetDC, hWin
mov devicecontext, eax
invoke TextOut,eax, 10, 40, addr svol, 50
</code></pre>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201036/problem-mit-einem-trackbar</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 10:19:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201036.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Dec 2007 14:00:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit einem Trackbar on Sun, 23 Dec 2007 14:00:57 GMT]]></title><description><![CDATA[<p>Habe einen Lautstärkeregler mit einem TrackBar programmiert, der Wert sollte in einen String eingebunden werden aber das macht komische Sachen: Der Wert geht von 70-79 und springt dann sofort auf 710 und geht dann von 710 - 7100 oder das Selbe mit 50-59, 510 - 5100! Der DrackBar geht von 0-100 was auch funktioniert wenn ich den Wert direkt, ohne StrNCat mit TextOut ausgebe. Nur nach der StrNCat (oder einer anderen eigenen Routine genau gleich) passiert das oben beschriebene. Auffällig noch bei den Deklarationen dass ich einmal db anstatt dd verwenden musste aber der Wert vom TrackBar scheint OK wie bei der direkten Ausgabe ersichtlich. Hier der Codeausschnitt, zuerst Deklarationen:</p>
<pre><code class="language-asm">tbnull db 0         ; mit dd= unveraenderliches TrackBar!!
tbhundert dd 100
tbsiebzig dd 70
svol db 255 dup (?),0
----------------------------------
; Trackber erstellen:

invoke CreateWindowEx,NULL,addr TrackBarClassName, NULL, WS_CHILD or WS_VISIBLE,220,60,70,20,hWin, TrackBarID, hInstance, NULL
mov hwndTrack, eax
invoke SendMessage, hwndTrack, TBM_SETRANGE, tbnull, tbhundert
invoke SendMessage, hwndTrack, TBM_SETPOS, TRUE, tbsiebzig

;-------------------------------- Fensterprozedur:

.elseif uMsg==WM_HSCROLL                      

mov setvol[28],0

invoke SendMessage, hwndTrack, TBM_GETPOS, TRUE, NULL

invoke wsprintf, addr svol, addr sformat, eax

invoke StrNCat, addr setvol, addr svol, 255
invoke GetDC, hWin
            mov devicecontext, eax
            invoke TextOut,eax, 10, 40, addr setvol, 50

invoke mciSendString, addr setvol, 0, 0, 0
</code></pre>
<p>funktionsfähig ist einfach</p>
<pre><code class="language-asm">invoke SendMessage, hwndTrack, TBM_GETPOS, TRUE, NULL
invoke wsprintf, addr svol, addr sformat, eax
invoke GetDC, hWin
mov devicecontext, eax
invoke TextOut,eax, 10, 40, addr svol, 50
</code></pre>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425187</guid><dc:creator><![CDATA[C. M. Obrecht]]></dc:creator><pubDate>Sun, 23 Dec 2007 14:00:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit einem Trackbar on Sun, 23 Dec 2007 14:02:25 GMT]]></title><description><![CDATA[<p>bleib weg mit deinem dummen assembler zeug</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425188</guid><dc:creator><![CDATA[pfui]]></dc:creator><pubDate>Sun, 23 Dec 2007 14:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit einem Trackbar on Sun, 23 Dec 2007 14:04:32 GMT]]></title><description><![CDATA[<p>Du bist doch nur neidisch weil du kein ASM kannst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425190</guid><dc:creator><![CDATA[C. M. Obrecht]]></dc:creator><pubDate>Sun, 23 Dec 2007 14:04:32 GMT</pubDate></item></channel></rss>