Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi AnimateWindow Non-vcl Hintergrundfarbe (https://www.delphipraxis.net/193105-animatewindow-non-vcl-hintergrundfarbe.html)

EWeiss 20. Jun 2017 13:39

AnimateWindow Non-vcl Hintergrundfarbe
 
Ich wollte das Menu für die Launchbar herausscrollen.
Ist schwierig aber lösbar.

Mein Problem ist nur das beim herausscrollen der Hintergrund weiß ist und ich aus irgendeinem Grund die Hintergrundfarbe nicht setzen kann..
Hat da schon jemand mit gearbeitet und kann mir sagen warum ich diese dann nicht zuweisen kann?

Beim erstellen des Window weise ich wc.hbrBackground die Farbe schwarz zu GetStockObject(BLACK_BRUSH) aber auch das ändert nicht die Hintergrundfarbe.

Für das nachträgliche setzen
SetBkMode
SetBkColor

sollte doch eigentlich korrekt dafür sein.

gruss

EWeiss 20. Jun 2017 16:11

AW: AnimateWindow Non-vcl Hintergrundfarbe
 
Falls es daran liegt das ihr nicht antwortet weil ihr nicht wisst wie man das macht hier ist der Code Teil zum Testen.

Im Quelltext von OTTB die Zeilen einfügen und WM_PAINT aus kommentieren.
PopUpProc..
Delphi-Quellcode:
    WM_PRINTCLIENT:
      begin
        GetClientRect(WinHandle, Rect);

        DC := HDC(wp);
        SrcDC := SKAERO_GetProperty(WinHandle, FORM_PaintDC);
        SKAERO_MoveBackground(WinHandle, Rect.Left, Rect.Top, True);

        BitBlt(DC, 0, 0, Rect.Right, Rect.Bottom, SrcDC, 0, 0, SRCCOPY);

        if not DrawSideBar then
        begin
          GetClipBox(DC, Rect);

          Rect.Top := 198;
          Rect.Left := 12;

          GDIP_DrawTextToDC(DC, 'Over The Task Bar', Rect, SKAERO_ACTIVECAPTION,
            'Nasalization Free', 14, FontStyleBoldItalic, 1.1,
          ZD_TextVertUp, MainApp.FPrivateFont);

          DrawSideBar := True;
        end;

        ReleaseDC(Winhandle, DC);
        ReleaseDC(Winhandle, SrcDC);
      end;
WndProc..
Delphi-Quellcode:
WM_RBUTTONDOWN:
...
//ShowWindow(Prop.PopupMenu, SW_SHOW);
AnimateWindow(Prop.PopupMenu, 500, AW_CENTER or AW_ACTIVATE);
Bei mir kommt immer ein weißer rahmen beim animieren.
Wie bekomme ich den weg? (denke gar nicht hat sich also erledigt)

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz