<?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[Zeile einer Listbox blau hinterlegen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Möchte in meiner ListBox die aktuelle Zeile (Cursorposition) blau hinterlegen.<br />
Muß ich dieses über MouseMove Befehl erledigen oder gibt es eine andere Möglichkeit ?<br />
Habe vergeblich in der Hilfe gesucht.</p>
<p>Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/113169/zeile-einer-listbox-blau-hinterlegen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 02:10:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/113169.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Jun 2005 11:31:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Mon, 20 Jun 2005 11:31:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Möchte in meiner ListBox die aktuelle Zeile (Cursorposition) blau hinterlegen.<br />
Muß ich dieses über MouseMove Befehl erledigen oder gibt es eine andere Möglichkeit ?<br />
Habe vergeblich in der Hilfe gesucht.</p>
<p>Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813130</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Mon, 20 Jun 2005 11:31:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Mon, 20 Jun 2005 11:38:51 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ja da brauchst du den OnMouseMove-Event und die Mehtode ItemAtPos()</p>
<p>Wobei ich mich frage, ob das Item dann nur anders dargestellt werden soll oder auch gleich effektiv ausgewählt werden soll (ItemIndex).<br />
Wenn du es nur darstellen willst, brauchst du noch einen Zwischenspeicher für dieses hervorzuhebende Item, und must den OnDrawItem-Event benutzen, um die Hervorhebung durchzuführen. Dazu must du den Style auf OwnerDraw... setzen</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813140</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 20 Jun 2005 11:38:51 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Mon, 20 Jun 2005 11:55:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Habe es etwas unglücklich beschrieben. Kenne aus anderen Prgramme, das man beim überfahren der Listbox mit der Maus die jeweilige Zeile blau hinterlegt wird.</p>
<p>Deine Infos haben meinen Weg bestätigt. Danke für die schnelle Hilfe.</p>
<p>Gruß Siegfried <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/813157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813157</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Mon, 20 Jun 2005 11:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Mon, 20 Jun 2005 14:02:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>nutze den Code aus dem C++ Forum.<br />
leider ändern sich nur die Farben be einem &quot; Click &quot; auf die Zeile.<br />
Hatte mir vorgestellt, das die Farbe sich beim Cursor auf die Zeile ändert.</p>
<pre><code class="language-cpp">void __fastcall TFrameListbox::ListBox1DrawItem(TWinControl *Control,
      int Index, TRect &amp;Rect, TOwnerDrawState State)
{
int i=0;
//
  if(State.Contains(odSelected))
  {
    ListBox1-&gt;Canvas-&gt;Brush-&gt;Color = LBColors[0];   // Hintergrundfarbe
    ListBox1-&gt;Canvas-&gt;Font-&gt;Color = LBColors[4];      // Textfarbe
  }
  else
  {
    ListBox1-&gt;Canvas-&gt;Brush-&gt;Color = LBColors[4];     // Textfarbe
    ListBox1-&gt;Canvas-&gt;Font-&gt;Color = LBColors[3];      //Hintergrundfarbe
  }
  // Hintergrund zeichnen
  ListBox1-&gt;Canvas-&gt;FillRect(Rect);
  // Text zeichnen
  ListBox1-&gt;Canvas-&gt;TextRect(Rect, Rect.Left, Rect.Top,
                             ListBox1-&gt;Items-&gt;Strings[Index]);
    i = Index;

  if(State.Contains(odFocused))
    {
    ListBox1-&gt;Canvas-&gt;DrawFocusRect(Rect);
    }
//
  Label1-&gt;Caption = IntToStr(MousePosIndex);
  Label2-&gt;Caption = IntToStr(i);
}
//---------------------------------------------------------------------------
</code></pre>
<p>wer kann mir helfen?</p>
<p>Gruß Siegfried <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/813281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813281</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Mon, 20 Jun 2005 14:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Mon, 20 Jun 2005 15:42:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich glaube das beste ist eine Ableitung von TListBox, um den Effekt zu erzeugen.<br />
Zuerst erstellst du eine Klasse dafür, wie hier in diesem Beispiel<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-112679-and-start-is-0.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-112679-and-start-is-0.html</a><br />
nur das du statt ComboBox immer ListBox schreibst und die automatisch erstellten Dateien stattdessen anders erweiterst.<br />
Headerdatei ListBoxEx.h :</p>
<pre><code class="language-cpp">...
private:
	void __fastcall wmMouseMove(TMessage&amp; Msg);
	void __fastcall cmMouseLeave(TMessage&amp; Msg);
        int iLastIndex; // interner Sppeicher für das letzte mit der Maus überfahrene Item
        TOwnerDrawState GetItemState(int CurrIndex);

protected:
  BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_MOUSEMOVE, TMessage, wmMouseMove);
    MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, cmMouseLeave);
  END_MESSAGE_MAP(TListBox)

  virtual void __fastcall DrawItem(int Index, const TRect &amp;Rect, TOwnerDrawState State);

public:
...
</code></pre>
<p>Implementationsdatei ListBoxEx.cpp :</p>
<pre><code class="language-cpp">void __fastcall TListBoxEx::DrawItem(int Index,
      const TRect &amp;Rect, TOwnerDrawState State)
{
  if(State.Contains(odSelected))
  {
    Canvas-&gt;Brush-&gt;Color = clHighlight;   // Hintergrundfarbe
    Canvas-&gt;Font-&gt;Color = clHighlightText;      // Textfarbe
  }
  else
  {
    Canvas-&gt;Brush-&gt;Color = clWindow	;     // Textfarbe
    Canvas-&gt;Font-&gt;Color = clMenuText	;      //Hintergrundfarbe
  }

  // Hier wird jetzt das gerade von der Maus überfahrene Item anders gezeichnet
  if (iLastIndex == Index)
  {
    Canvas-&gt;Font-&gt;Color = clRed;
    }

  // Hintergrund zeichnen
  Canvas-&gt;FillRect(Rect);
  // Text zeichnen
  Canvas-&gt;TextRect(Rect, Rect.Left +2, Rect.Top,
                             Items-&gt;Strings[Index]);

  if(State.Contains(odFocused))
    {
    Canvas-&gt;DrawFocusRect(Rect);
    }
}
//---------------------------------------------------------------------------

// Ermittelt den OwnerDrawState für ein Item
TOwnerDrawState TListBoxEx::GetItemState(int CurrIndex)
{
  TOwnerDrawState State = TOwnerDrawState();
  if (ItemIndex == CurrIndex)
    State &lt;&lt; odSelected;
  return(State);
  }

void __fastcall TListBoxEx::wmMouseMove(TMessage&amp; Msg)
{
  TPoint CursorPoint; // aktueller Punkt des Mauscursors
  GetCursorPos(&amp;CursorPoint); // Cursor ermitteln
  CursorPoint = ScreenToClient(CursorPoint); // Cursor auf dieses Control umrechnen
  int CursorIndex = ItemAtPos(CursorPoint, true); // Item unter Cursor ermitteln

  // Wenn Item unter Cursor vorhanden, dieses neu zeichnen
  if (CursorIndex != -1)
  {
    TRect Rect = ItemRect(CursorIndex);
    DrawItem(CursorIndex, Rect, GetItemState(CursorIndex));
    }

  // Wenn vor dem Aufruf ein anderes Item hervorgehoben war, dieses
  // ermitteln und neu ohne Vorhebung zeichnen
  if ((iLastIndex != CursorIndex) &amp;&amp; (iLastIndex &gt; -1))
  {
    TRect Rect = ItemRect(iLastIndex);
    int Buffer = iLastIndex;
    iLastIndex = CursorIndex;
    DrawItem(Buffer, Rect, GetItemState(Buffer));
    }
  iLastIndex = CursorIndex; // neuen Index übernehmen
  }
//---------------------------------------------------------------------------

void __fastcall TListBoxEx::cmMouseLeave(TMessage&amp; Msg)
{
  if (iLastIndex == -1) return; // Wenn keine Vorhebung, beenden

  // Item ohne Vorhebung neu zeichnen und Index zurücksetzen
  TRect Rect = ItemRect(iLastIndex);
  int Buffer = iLastIndex;
  iLastIndex = -1;
  DrawItem(Buffer, Rect, GetItemState(Buffer));
  }
//---------------------------------------------------------------------------

__fastcall TListBoxEx::TListBoxEx(TComponent* Owner)
        : TListBox(Owner)
{
  iLastIndex = -1; // Startwert
}
//---------------------------------------------------------------------------
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813348</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 20 Jun 2005 15:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Wed, 22 Jun 2005 10:19:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>muß alles ausprobieren.</p>
<p>vorerst vielen Dank</p>
<p>Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/post/814655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814655</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Wed, 22 Jun 2005 10:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Wed, 22 Jun 2005 13:09:03 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hat funktioniert.<br />
kann man nachträglich den Code abändern und die Komponente updaten ?</p>
<p>Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/post/814813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814813</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Wed, 22 Jun 2005 13:09:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Wed, 22 Jun 2005 13:15:40 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>klar.<br />
du öffnest das erstellte Package (Package_ListBoxEx.bpk), änderst den Code und compilierst und installierst das Package neu. Die alte Version wird dann ersetzt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/814819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814819</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 22 Jun 2005 13:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Wed, 22 Jun 2005 13:57:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hat auch funktioniert.<br />
Habe aber noch ein Problem. Habe im OI die Schrift auf Fett eingestellt. Wenn ich mit der Maus über die Zeilen fahre, wandelt sich der Text in normal um.</p>
<p>wo muß ich noch eine Änderung durchführen ?</p>
<p>Gruß Siegfried</p>
]]></description><link>https://www.c-plusplus.net/forum/post/814857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814857</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Wed, 22 Jun 2005 13:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Wed, 22 Jun 2005 14:05:32 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>einfach die Funktion DrawItem so erweitern</p>
<pre><code class="language-cpp">void __fastcall TListBoxEx::DrawItem(int Index,
      const TRect &amp;Rect, TOwnerDrawState State)
{
  Canvas-&gt;Font = Font; // übernimmt den Font des Controls zum Darstellen
  ...
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/814863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814863</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 22 Jun 2005 14:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Wed, 22 Jun 2005 15:10:27 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>funktioniert, so wie ich es wollte.</p>
<p>Danke !!!</p>
<p>Gruß Siegfried <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="👍"
    /> <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="👍"
    /> <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/814912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814912</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Wed, 22 Jun 2005 15:10:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Sat, 06 Aug 2005 15:37:36 GMT]]></title><description><![CDATA[<p>Hallo <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a></p>
<p>die Komponente funktioniert gut.<br />
Jetzt wollte ich &quot;OnMouseMove&quot; zusätzlich nutzen. Klappt leider nicht.<br />
OnMouseDown und OnMouseUp klappt.</p>
<p>brauche Hilfe!</p>
<p>Gruß Siegfried <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/847041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847041</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Sat, 06 Aug 2005 15:37:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Sat, 06 Aug 2005 16:51:25 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>liegt daran, das in der abgeleiteten Komponente ja die MouseMove-Botschaft abgefangen wird. Alles was du tun must, ist den OnMouseMove-Event selber auszulösen</p>
<pre><code class="language-cpp">void __fastcall TListBoxEx::wmMouseMove(TMessage&amp; Msg)
{
  ...
  if (OnMouseMove) OnMouseMove(this, TShiftState(), 0, 0);
  }
</code></pre>
<p>DIe letzten drei Parameters kannst du auch noch bestimmen, u.a. aus den Message-Parametern.</p>
<p>/Edit : Oder besser der Vorschlag von Jansen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/847073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847073</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 06 Aug 2005 16:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Sat, 06 Aug 2005 16:50:38 GMT]]></title><description><![CDATA[<p>In den MessageHandlern fehlt das Dispatch().<br />
Siehe auch den entsprechenden <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39305.html" rel="nofollow">FAQ</a>-Eintrag im Abschnitt &quot;System&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/847074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847074</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sat, 06 Aug 2005 16:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Sat, 06 Aug 2005 17:53:20 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Danke an alle für die Hilfe.</p>
<pre><code class="language-cpp">void __fastcall TListBoxEx::wmMouseMove(TMessage&amp; Msg)
{
// OnMouseMove Ereignis auswerten
if (OnMouseMove) OnMouseMove(this, TShiftState(), 0, 0);
//
//
  TPoint CursorPoint; // aktueller Punkt des Mauscursors
  GetCursorPos(&amp;CursorPoint); // Cursor ermitteln
  CursorPoint = ScreenToClient(CursorPoint); // Cursor auf dieses Control umrechnen
  int CursorIndex = ItemAtPos(CursorPoint, true); // Item unter Cursor ermitteln

  // Wenn Item unter Cursor vorhanden, dieses neu zeichnen
  if (CursorIndex != -1)
  {
    TRect Rect = ItemRect(CursorIndex);
    DrawItem(CursorIndex, Rect, GetItemState(CursorIndex));
    }

  // Wenn vor dem Aufruf ein anderes Item hervorgehoben war, dieses
  // ermitteln und neu ohne Vorhebung zeichnen
  if ((iLastIndex != CursorIndex) &amp;&amp; (iLastIndex &gt; -1))
  {
    TRect Rect = ItemRect(iLastIndex);
    int Buffer = iLastIndex;
    iLastIndex = CursorIndex;
    DrawItem(Buffer, Rect, GetItemState(Buffer));
    }
  iLastIndex = CursorIndex; // neuen Index übernehmen
  }
//---------------------------------------------------------------------------
</code></pre>
<p>Zeile eingefügt, funktioniert! Habe aber noch ein Problem. Wie bekomme ich den &quot;CursorIndex&quot; an die Form gemeldet ?<br />
Bin bei solchen Code überfragt. Kann man mir hier auch helfen ?<br />
Hintergrund ist folgender. Beim überfahren der ListBox ändert sich die Zeilenfarbe. Dies ist alles ok. Nun möchte ich aber beim überfahren der Zeilen auch dessen Inhalt auslesen, ohne einen Maus Click ausführen zu müssen. Wenn dieses nicht der richtige Weg ist, lasst mich es wissen.</p>
<p>Gruß Siegfried <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/847101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847101</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Sat, 06 Aug 2005 17:53:20 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Sat, 06 Aug 2005 20:30:38 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du machst eine Nur-Lesen Eigenschaft für iLastIndex. Dann kannst du diesen Wert beliebig oft abrufen, und als Index für Items-&gt;Strings benutzen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/847179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847179</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 06 Aug 2005 20:30:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Sat, 06 Aug 2005 22:01:32 GMT]]></title><description><![CDATA[<p>Dispatch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/847217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847217</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sat, 06 Aug 2005 22:01:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Listbox blau hinterlegen on Sun, 07 Aug 2005 10:35:36 GMT]]></title><description><![CDATA[<p>Hallo,<br />
nochmals vielen Dank für die Hilfe. Habe eine Möglichkeit gefunden, meine Wünsche zu verwirklichen. Ich gehe davon aus, wenn ihr meine Lösung lest, das ihr die Hände über dem Kopf .....</p>
<pre><code class="language-cpp">void __fastcall TListBoxEx::wmMouseMove(TMessage&amp; Msg)
{
//
//
  TPoint CursorPoint; // aktueller Punkt des Mauscursors
  GetCursorPos(&amp;CursorPoint); // Cursor ermitteln
  CursorPoint = ScreenToClient(CursorPoint); // Cursor auf dieses Control umrechnen
  int CursorIndex = ItemAtPos(CursorPoint, true); // Item unter Cursor ermitteln

  // Wenn Item unter Cursor vorhanden, dieses neu zeichnen
  if (CursorIndex != -1)
  {
//************************************************************
// OnMouseMove Ereignis auswerten
if (OnMouseMove) OnMouseMove(this, TShiftState(), 0, CursorIndex);
//************************************************************
    TRect Rect = ItemRect(CursorIndex);
    DrawItem(CursorIndex, Rect, GetItemState(CursorIndex));
    }

  // Wenn vor dem Aufruf ein anderes Item hervorgehoben war, dieses
  // ermitteln und neu ohne Vorhebung zeichnen
  if ((iLastIndex != CursorIndex) &amp;&amp; (iLastIndex &gt; -1))
  {
    TRect Rect = ItemRect(iLastIndex);
    int Buffer = iLastIndex;
    iLastIndex = CursorIndex;
    DrawItem(Buffer, Rect, GetItemState(Buffer));
    }
  iLastIndex = CursorIndex; // neuen Index übernehmen
  }
//---------------------------------------------------------------------------
</code></pre>
<p>Wenn auch meine Möglichkeit getrickst ist, hat es mir den Erfolg gebracht.<br />
Über &quot;Dispatch&quot; können wir uns später unterhalten. Ich arbeite mit C++ seit etwa 6 Monate, komme aus der untersten Ebene über VB6 zu C++. Also muß ich sehr gut zuhören, was man mir vorschlägt. Es kann nur besser werden.<br />
bis bald<br />
Siegfried <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="👍"
    /> <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="👍"
    /> <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/847360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847360</guid><dc:creator><![CDATA[Beppo]]></dc:creator><pubDate>Sun, 07 Aug 2005 10:35:36 GMT</pubDate></item></channel></rss>