Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

InvalidateRect und 100% CPU ?

  Alt 24. Okt 2008, 11:25
da bei mir die Button nicht neu gezeichnet werden wenn ich mit der maus drüberfahre
habe ich mich zu InvalidateRect entschlossen.

Delphi-Quellcode:
begin
  ImgW := ImgW div cardinal(StateMax);
  if IsWindowEnabled(WinHandle) then
  begin
    UseState := 1;
    if (WinHandle = GetFocus) and (StateMax > 3) then
      UseState := 4;
    GetCursorPos(CurPos);
    ScreenToClient(WinHandle, CurPos);
    InvalidateRect(WinHandle, @rc, False);
    UpdateWindow(WinHandle);
    if PtInRect(rc, CurPos) then
      if IsLButtonDown then
      begin
        if WinHandle = GetFocus() then
          if (GetCursor = LoadCursor(0, IDC_ARROW)) and (StateMax > 1) then
            UseState := 2;
      end else
      if StateMax > 4 then UseState := 5;
  end else
  if StateMax > 2 then UseState := 3;
end;
Jetzt funktioniert alles bestens aber mit gut 80-100% CPU
wenn ich mit der Maus innerhalb des Window bin.

Das kann es doch nicht sein oder ?
Hat vielleicht jemand eine lösung dafür ?

gruss Emil
  Mit Zitat antworten Zitat