[Delphi] Как нарисовать оконтовку вокруг окна?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by RedFern.89, 28 Dec 2010.

  1. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    Доброго времени суток) как сделать сие чудо?

    не предлогать альфаскинс, альфаконтролс и прочую нечесть. Интересует как своими руками это сделать.

    я конечно попробовал один из вариантов: это нарисовать форму под формой. и задать собственно прозрачность.. но это как-то по-буржуйски и убого..

    есть предложения?
     
  2. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,582
    Likes Received:
    1,310
    Reputations:
    1,557
    Ты бы объяснил понятнее, что нужно.
    Если хочешь нестандартную форму окна, используй TImage.
     
  3. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    RedFern.89, это немного не то, но смысл думаю будет понятен куда копать, процедурка выполняет подсветку окна обводкой его контура с инвертированием цвета)
    Code:
    // подсветка окна --->>>
    procedure FrameWindow(Wnd: HWnd);
    var 
      Rect: TRect;
      DC: hDC; 
      OldPen, Pen: hPen; 
      OldBrush, Brush: hBrush; 
      X2, Y2: Integer; 
    begin
      GetWindowRect(Wnd, Rect);
      DC := GetWindowDC(Wnd);
      SetROP2(DC, R2_NOT);
      Pen := CreatePen(PS_InsideFrame, 4, 0);
      OldPen := SelectObject(DC, Pen); 
      Brush := GetStockObject(Null_Brush); 
      OldBrush := SelectObject(DC, Brush);
      X2 := Rect.Right - Rect.Left;
      Y2 := Rect.Bottom - Rect.Top;
      Rectangle(DC, 0, 0, X2, Y2);
      SelectObject(DC, OldBrush);
      SelectObject(DC, OldPen); 
      ReleaseDC(Wnd, DC);
      { Do NOT delete the brush, because it was a stock object }
      DeleteObject(Pen); 
    end;
    
     
    #3 alexey-m, 29 Dec 2010
    Last edited: 29 Dec 2010
    1 person likes this.